文章目录
前言
本文从Linux C语言基础知识聊起到Linux的GPIO子系统结束。
一 Linux C语言简述之文件基本操作
推荐图书 《UNIX环境高级编程》
文件系统,这里的文件系统可以理解为具有同样功能的目录的集合。在这个系统框架内,不同的目录,具有同样内容的子文件集合。
1.1 文件描述符与文件I/O
对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用open或create返回的文件描述符标识该文件,将其作为参数传送给read或write。
按照惯例,UNIX shell使文件描述符0与进程的标准输入相结合,文件描述符 1与标准输出相结合,文件描述符2与标准出错输出相结合。这是UNIX shell以及很多应用程序使用的惯例,而与内核无关。尽管如此,如果不遵照这种惯例,那么很多 U N I X应用程序就不能工作。
在POSIX应用程序中,幻数 0、1、2应被代换成符号常数STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO。这些常数都定义在头文件<unistd.h>中。
文件描述符的范围是0 ~ OPEN_MAX(可调整)。
1.1.1 open
调用open函数可以打开或创建一个文件。
1.1.2 read
用read函数从打开文件中读数据
1.1.3 write
用write函数向打开文件写数据