目录
一、退出码
man 2 wait 查看帮助手册
WIFEXIRED:正常退出的状态
WEXITSTATUS:获取退出码二
else//父进程 { s="parent"; n=7; int val; wait(&val); if(WIFEXITED(val))//正常退出的状态 { printf("val=%d\n",WEXITSTATUS(val)); } // wait(NULL); //不要退出码 }
二、操作文件的系统调用
C语言处理文件的几个库函数:fopen、fread、fwrite、fclose;
1、open():打开一个文件
参数:
pathname:文件的路径和名称
flags:文件的打开方式
mode:文件的权限,如“0600”
返回值:返回整型,就是文件描述符
flag的打开标志:
O_WRONLY:只写打开;
O_RDONLY:只读打开;
O_RDWR:读写方式打开;
O_CREAT:文件不存在则创建;
O_APPEND:文件末尾追加;
O_TRUNC:清空文件,重新写入;
2、read():从文件中读取数据
man 2 read
头文件:<unistd.h>
参数:
fd:对应打开的文件描述符h3
buf:把文件内容读取到一块空间buf中
count:期望要读取的字节数
返回值:ssize_t :实际读取了多少个字节;
3、write():向文件中写入数据
头文件:<unistd.h>
参数:
fd:对应打开的文件描述符
buf:写入的文件内容
count:要写入多少个字节
返回值:ssize_t :实际写入了多少个字节;
4、close():关闭文件
文件描述符:0,1,2
标准输入对应的编号:0 stdin
标准输出对应的编号:1 stdout
标准错误输出对应的编号:2 stderror文件描述符是最小未被使用的一项。
三、例题演示
1、利用读和写对文件进行复制
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <fcntl.h>
int main()
{
int fdr=open("file.txt",O_RDONLY);
int fdw=open("newfile.txt",O_WRONLY|O_CREAT,0600);
if(fdr==-1||fdw==-1)
{
exit(0);
}
char buff[256]={0};
int num=0;
while((num=read(fdr,buff,256))>0)
{
write(fdw,buff,num);
}
close(fdr);
close(fdw);
exit(0);
}
如有错误,敬请指正。
您的收藏与点赞都是对我最大的鼓励和支持!