一、一些概念
1. Linux系统编程本质是用编程语言(主要是C语言)调用Linux内核提供的 "系统调用(System Call)"或着说是调用Linux系统提供的API,实现对操作系统资源的操作(比如文件、进程、内存、网络等)。
2.Linux系统下的资源包括:
1)进程与线程资源;
2)内存资源;
3)文件系统与 I/O 资源;
4)IPC与进程间通信资源;
5)网络资源;
6)定时器资源。
3.标准C库(libc)和Linux系统调用(System Call)之间的核心关系:
系统调用是内核直接暴露的底层接口(给内核态/用户态交互用),标准C库是对系统调用的上层封装(给应用程序用),同时增加了缓存、跨平台等实用功能。

二、测试
1.源代码 main.c
/*Linux系统提供*/#include<fcntl.h>// open 头文件#include<unistd.h>// write/close 头文件/*libc提供*/#include<stdio.h>//printf 头文件intmain(){// 1. 打开/创建文件(只写,不存在则创建,存在则清空)int fd = open("test.txt", O_WRONLY | O_CREAT, 0644);// 2. 写入数据(系统调用直接写,无缓冲区)write(fd, "Hello Linux\n", 12);// 3. 关闭文件描述符(必须!)close(fd);printf("main end\n");return 0;}
2.编译生成.out文件
1)gcc main.c #编译生成.out文件 (默认生成a.out)
2)./a.out #运行.out文件
3)cat test.txt #查看test.txt里的内容
