我有以下的簡單的程序,catenates infile中到outfileÇDUP2覆蓋文件錯誤時線> 1
char *execArgs[] = { "cat", NULL};
int outfile = open("outfile", O_WRONLY | O_CREAT, 0644);
int infile = open("infile", O_RDONLY, 0);
dup2(outfile, STDOUT_FILENO);
dup2(infile, STDIN_FILENO);
close(outfile);
close(infile);
execvp(execArgs[0], execArgs);
現在,假設infile中的含量爲
this is infile
和OUTFILE是
this is outfile
運行該程序後,outfile的內容在最後有一個額外的「e」,如
this is infilee
而且,如果OUTFILE反而
this is outfile
this is outfile
它成爲
this is infilee
this is outfile
有什麼不對?
int outfile = open(「outfile」,O_WRONLY | O_CREAT,0644);這一行導致問題,你只想創建outfile文件不存在的情況。 – user3629249 2014-10-19 01:09:38