当前位置:首页 > 系统教程 > 正文

Linux基础IO详解(从零开始理解文件操作)

Linux基础IO详解(从零开始理解文件操作)

在Linux系统中,文件IO(输入/输出)是基础且重要的概念。本文将带你从小白角度理解Linux基础IO,重点介绍Linux文件描述符Linux open函数Linux read/write以及Linux文件权限

1. 文件描述符

文件描述符是一个非负整数,内核用它来标识进程打开的文件。每个进程默认有三个文件描述符:0(标准输入)、1(标准输出)、2(标准错误)。当你打开或创建文件时,内核返回一个新的文件描述符。

Linux基础IO详解(从零开始理解文件操作) Linux文件描述符  Linux open函数 read/write Linux文件权限 第1张

2. open函数

Linux open函数用于打开或创建文件。其原型为:

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

flags参数指定访问模式,如O_RDONLY、O_WRONLY、O_RDWR,还可组合O_CREAT、O_TRUNC等。mode参数指定文件权限,与Linux文件权限相关。

3. read和write函数

Linux read/write函数用于读写文件。read从文件描述符读取数据,write向文件描述符写入数据。示例:

    #include ssize_t read(int fd, void *buf, size_t count);ssize_t write(int fd, const void *buf, size_t count);  

4. 文件权限

当使用open创建文件时,需要指定mode,它受umask影响。Linux文件权限由9位表示,分为所有者、组、其他三组,每组有读、写、执行权限。例如0644表示所有者读写,组和其他只读。

5. 示例程序

    #include #include int main() {    int fd = open("test.txt", O_WRONLY | O_CREAT, 0644);    if (fd == -1) return 1;    write(fd, "Hello Linux IO", 14);    close(fd);    return 0;}  

这个程序创建test.txt并写入字符串。

总结

本文介绍了Linux基础IO的核心概念,包括Linux文件描述符、open、read/write和文件权限。下期将深入讨论文件描述符的细节和重定向。