一.系统调用
1.所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。
2.为什么用户程序不能直接访问系统内核提供的服务?
由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。
3.Linux一点哲学,“一切皆为文件”;在Linux中对目录和设备的操作都等同于对文件的操作,都是使用文件描述符来进行的。
4.创建文件
格式:int creat(const char *filename, mode_t mode )
参数:filename:创建文件的文件名;
mode: 创建模式,常用的S_IRWXU和S_IRWXG
例程序:创建一个名为test。txt的文件,属性为用户和用户同组的可读可写可执行。
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdlib.h>
int main()
{
int ret;
ret=creat("test.txt",S_IRWXU|S_IRWXG);
if(ret==-1)
{
perror("creat");
exit(1);
}
r