系统编程


文件操作:
1.open&close函数:
包含头文件:
? #include open函数头文件
? #include 参数头文件
? #include 错误信息头文件,strerror(errno)显示错误信息

int fd = open(文件名,参数,权限);
参数包括:O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, O_CREAT, O_EXCL等,参数可以多个,之间用 | 隔开
close(int fd);

2.read&write函数:
int n = read(fd, 缓冲区数据,缓冲区);
return 0为读到文件末尾,n为读到的字节数,-1为错误
int n = write(fd, 缓冲区数据,数据大小);
return n为读到的字节数,-1为错误

3.lseek函数:
off_t lseek(int fd, off_t offset, int whence)
fd:文件描述符 offset:偏移量 whence:偏移起始位置:SEEK_SET/SEEK_CUR/SEEK_END
return 成功:较起始位置便宜量 ? 失败:-1 errno
注意:1.文件读和写共用一个偏移位置
???2.lseek能获取大小:lseek(fd, 0, SEEK_END);
???3.lseek拓展文件/truncate函数直接拓展

目录操作:
包含头文件#include
1.opendir函数:
DIR* opendir(char* name);

2.closedir函数:
int closedir(DIR* dp);

3.readdir函数:
struct dirent* readdir(DIR* dp);

重定向函数:
int dup(int oldfd);
返回新文件描述符
int dup2(int oldfd, int newfd);

exec函数族:
1.int execl(file, argv,....,NULL);
进程执行file命令,一般是系统命令如ls,ps等,且argv[0]为file命令本身

2.int execlp(path, argv,....,NULL);
进程执行path路径下的文件

wait函数:
1.pid_t wait(int* status);
status为传出参数,通过status了解状态

2.pid_t waitpid(pid_t pid, int* status, int options);