文件描述符 0 标准输入
1标准输出
2标准错误输出(以后项目做大以后可以往2里面扔垃圾)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(){
int fd;
char a[128];
int n_read=read(0,a,5);
int n_write=write(1,a,strlen(a));
return 0;
}
注意:文件描述符的作用域是当前进程,出了这个进程文件描述符就没有意义了。
./a.out 的文件与./a.out 2不相干。
文件 分为动态文件和静态文件
静态文件:文件存在磁盘中,(place:pc,磁盘)
动态文件:在open静态文件之后,在linux内核形成一个结构体来记录这个文件
如 pd ,buf(内容(申请内存)),所有read和write都是对动态buf里面数据进行 修改
只有调用close(pd)时,才把动态文件转为磁盘的静态文件。