Linux---open,write,read,close函数
1.open函数
打开一个指定的文件并获得一个文件描述符
用法:
int fd = open("threetxt",O_RDWR|O_CREAT|O_TRUNC);

2.write函数
将数据写入指定的文件
用法:
char a[45] = "你是不是一个好人?";
int write_res = write(open_fd,a,strlen(a));
if(write_res == ERR_NUM)
{
perror("write1");
return ERR_NUM;
}

3.read函数
从指定的文件读取数据
用法:
int n=read(open_fd1,array,sizeof(array));

4.close函数
关闭文件
用法:
close(fd);

5.练习:用read以及write实现cp的功能
#include
#include
#include
#include
#include
#include
#include
int My_Cp(int open_fd1,int open_fd2);
int main(int argc , char *argv[])
{
if(argc != 3)
{
printf("指令有误,请重新输入!\n");
return -1;
}
if(access(argv[1],F_OK))
{
printf("没有目标文件:%s!",argv[1]);
return -1;
}
umask(0000);
int open_fd1 = open(argv[1],O_RDWR);
int open_fd2 = open(argv[2],O_RDWR | O_CREAT |O_TRUNC, 0777);
if(open_fd1 == -1 || open_fd2 == -1)
{
perror("open failed\n");
return -1;
}
My_Cp(open_fd1,open_fd2);
close(open_fd1);
close(open_fd2);
return 0;
}
int My_Cp(int open_fd1,int open_fd2)
{
char array[1024];
int n;
memset(array,0,1024);
while( (n=read(open_fd1,array,sizeof(array))) != 0)
{
if(n
{
perror("read");
return -1;
}
int write_res = write(open_fd2,array,n);
if(write_res == -1)
{
perror("write failed!\n");
return -1;
}
memset(array,0,1024);
}
return 0;
}