1. 什么是系统编程?

Linux系统编程笔记(1)——系统编程及其特点-萤火
Linux系统编程笔记(1)——系统编程及其特点-萤火
  • 客户:用户程序
  • 银行:OS内核jk
  • 金库:硬件资源(CPU、内存、硬盘、显示器、网络。。。)
  • 办事窗口:系统调用(System calls)

2.系统编程的特点

  • 无法跨平台:不同OS的系统调用不一样
  • 速度慢: 用户空间与内核空间的切换需要时间
  • 更加底层,接口更复杂 ,例如

Glibc:

#include <stdio.h>

FILE *fopen(const char *path, const char *mode);

System calls:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int opeen(const char *pathname, int flags, mode_t mode);