1、i节点
通过ls -i可查看文件的i节点号,i节点记录了文件的属性和数据在磁盘上的存储位置。目录也是文件,存放路径和i节点号的映射表。
2、dup/dup2
函数说明
#include <unistd.h>
int dup (int oldfd);
//用来复制文件描述符 返回最小的文件描述符
int dup2 (int oldfd, int newfd);
//用来复制文件描述符 将old描述符复制给newfd 如果newfd被占用则覆盖
//一般用dup2 dup需要先关闭oladfd然后开新的
//成功返回文件描述符oldfd的副本,失败返回-1。
函数使用
#include <stdio.h>
#include <unistd.h>
#include <sys/fcntl.h>
#include <string.h>
#include <errno.h>
int main(){
//打开a.txt文件
int fd = open("a.txt",O_WRONLY|O_CREAT|O_APPEND,0644);
if(fd == -1){
printf("%m\n");
}
dup2(fd,1);//close(stdout); 1 === fd 没必要标准输入 输出
printf("hello world\n");//CGI
close(fd);
return 0;
}