我寫了下面的代碼將一個文件複製到另一個。雖然代碼有效,但代碼仍然會打印兩個錯誤消息。爲什麼是這樣 ?我是Unix和C編程的完全初學者(儘管我之前使用過C++),所以儘可能詳細的幫助將會非常棒。謝謝 !將一個文件複製到另一個文件(Unix/C)?
int main(int argc, char *argv[])
{
int n;
char buf[4096];
while ((n=read(open(argv[1], O_RDONLY) , buf, 4096))>0)
{
if (write(creat(argv[2], S_IREAD | S_IWRITE), buf, n)!=n)
printf("Error writing to file.\n");
}
if (n<0)
printf("Error reading from file.\n");
exit(0);
}
您重新打開這兩個文件與循環的每次迭代。 –
*「代碼有效」*但您是否確實檢查過目標文件與源文件具有相同的內容?請用文件大小> 4096進行測試。 –
您認爲在何處讀取新打開的文件開始?如果文件已經存在,'creat'e fucntion會做什麼? – Olaf