在下面的程序中使用lseek函数...程序只是复制文件(已经存在)。我想用文件末尾的字符复制现有文件 例如:Sorce_File.txt包含:复制后的“1 2 3”Target_File.txt包含:“3 2 1”
我很确定这是一个简单的问题但是从2天后就找不到怎么做
#include <fcntl.h>
#include <stdio.h>
#define MAX 512
int main(int argc, char* argv[]){
char buf[MAX];
int desc_sorc, desc_targ;
int lbajt;
if (argc<3){
argv[0];
exit(1);
}
desc_sorc = open(argv[1], O_RDONLY);
if (desc_sorc == -1){
}
desc_targ = creat(argv[2], 0640);
if (desc_targ == -1){
exit(1);
}
while((lbajt = read(desc_sorc, buf, MAX)) > 0){
if (lbajt == -1) {
perror("position error");
exit(1);}
if (write(desc_targ, buf, lbajt) == -1)
{
exit(1);
}
}
if (lbajt == -1){
exit(1);
}
if (close(desc_sorc) == -1 || close(desc_targ) == -1){
exit(1);
}
exit(0);
}
答案 0 :(得分:2)
int desc_sorc, desc_targ;
您实际上并未将这些内容初始化为任何内容。任何地方。
编辑:既然你已经解决了这个问题,你真的再次测试了吗?
答案 1 :(得分:0)
你在那里缺少等价的strrev(...)
来反转你写出来的字符串,从源文件的末尾开始并向后读或从目标文件的末尾写回到开头。
实际的实施留给读者练习。