我想複製一個文件,跳過其前n行,最後m行使用open,read,write和lseek (例如n = 1,m = 2,源文件:
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD複製文件跳過前n行和後m行
DEST文件:
BBBBBBB)
我知道如何複製文件,但不知道如何跳過線。這裏是我的副本代碼:
char buf[128];
size_t size;
int source = open(argv[1], O_RDONLY);
int dest = open(argv[2], O_CREAT | O_APPEND | O_WRONLY);
if(source == -1) {
printf("error");
return;
}
if(dest == -1) {
printf("error");
return;
}
while((size = read(source, buf, sizeof(buf))) > 0) {
write(dest, buf, size);
}
close(source);
close(dest);
我怎樣才能解決這個問題?
如何跳過第N行是顯而易見的,不是嗎?只要繼續閱讀,直到你通過N個換行符。 – Barmar
你爲什麼在輸出文件上使用'O_APPEND'?你真的想追加到目標文件的末尾,而不是覆蓋它嗎? – Barmar
是的,我不應該使用O_APPEND我的壞 – keysersoze