编写一个文件复制的C语言程序: 分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和
编写一个文件复制的C语言程序:分别使用文件的系统调用read(fd,buf,nbytes),write(fd,buf,nbytes)和文件的库函数fread(buf,si...
编写一个文件复制的C语言程序:
分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的库函数fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),编写一个文件的复制程序(文件大小>1M ),文件可以编一个C程序来生成,或使用/usr/bin下的二进制执行文件。 展开
分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的库函数fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),编写一个文件的复制程序(文件大小>1M ),文件可以编一个C程序来生成,或使用/usr/bin下的二进制执行文件。 展开
1个回答
展开全部
就是一个文件的读写问题啊。
#include<stdio.h>
int main(int argc, char **argv)
{
int rfd = -1, wfd = -1;
char buf[1024] = {0};
int n;
if(argc != 3){
printf("Usage: ./test infile outfile\n");
return -1;
}
rfd = open(argv[1], O_RDONLY);
wfd = open(argv[2], O_WRONLY);
while((n = read(rfd, buf, 1024)) > 0)
write(wfd, buf, n);
return 0;
}
其中的错误检测自己添加;
测试:# ./test infile outfile
./test是你编译生成的,infile是输入文件,outfile是要写入的文件
#include<stdio.h>
int main(int argc, char **argv)
{
int rfd = -1, wfd = -1;
char buf[1024] = {0};
int n;
if(argc != 3){
printf("Usage: ./test infile outfile\n");
return -1;
}
rfd = open(argv[1], O_RDONLY);
wfd = open(argv[2], O_WRONLY);
while((n = read(rfd, buf, 1024)) > 0)
write(wfd, buf, n);
return 0;
}
其中的错误检测自己添加;
测试:# ./test infile outfile
./test是你编译生成的,infile是输入文件,outfile是要写入的文件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询