unix操作系统的文件系统,unix系统调用下的文件操作

时间:2021-06-18 15:31 作者:IIS7 admin

    系统调用
    UNIX/Linux系统绝大部分功能都是通过系统调用实现,比如:open/close…
    UNIX/Linux把系统调用都封装成了C函数的形式,但他们并不是标准C的一部分。
    一切皆文件
    在UNIX/Linux系统下,几乎所有资源都是以文件形式提供了,所以在UNIX/Linux系统下一切皆文件,操作系统把它的服务、功能、设备抽象成简单的文件,提供一套简单统一的接口,这样程序就可以像访问磁盘上的文件一样访问串口、终端、打印机、网络等功能。
    大多数情况下只需要open/read/write/ioctl/close就可以实现对各种设备的输入、输出、设置、控制等。UNIX/Linux下几乎任何对象都可以当作特殊类型的文件,可以以文件的形式访问。
    文件相关系统调用
 
    (1)open()
 
    功能:打开文件
    返回值:文件描述符
    参数:
    creat()
    intcreat(constchar*pathname,intflags,mode_tmode);
    功能:创建文件
    pathname:文件的路径
    flags:打开的权限
    O_CREAT,文件不存在则创建
    O_EXCL,如果文件存在,则创建失败
    mode:设置文件的权限
    read()/write()
    #include<unistd.h>
    ssize_tread(intfd,void*buf,size_tcount);
    功能:从文件中读取数据到内存
    fd:文件描述符,open函数的返回值
    buf:数据的存储位置count:读取的字节数
    返回值:成功读取到的字节数
    ssize_twrite(intfd,constvoid*buf,size_tcount);
    功能:把数据写入到文件
    fd:文件描述符,open函数的返回值
    buf:要写入的数据内存首地址
    count:要写入的字节数
    返回值:成功写入的字节数
    注意:如果把结构体以文本形式写入到文件,需要先把结构体转换成字符串。
    原文链接:https://blog.csdn.net/qq_42685292/article/details/97623327