char *file1charbuf=(char*)malloc(sizeof(char));
char *file2charbuf=(char*)malloc(sizeof(char));
直到EOF我讀焦炭引入*file1charbuf
和*file2charbuf
,然後比較如何比較的char *數組。如果循環保持在堆棧使用C
...
check=read(file1, file1charbuf, 1);
check2=read(file2, file2charbuf, 1);
if (*file1charbuf!=*file2charbuf){
printf("differ: char %i, line %i\n",charpos,linepos);
exit(1);
}
....
比較工作正常,但我想保持指針堆棧,而不是在堆中。另外malloc是C lib函數。
char *file1charbuf[1]; //1 element array of char
char *file2charbuf[1];
與比較不工作的權利
...
if (file1charbuf[0]!=file2charbuf[0]){
printf("differ: char %i, line %i\n",charpos,linepos);
exit(1);
}
...
和第二個問題。如果找到exit(1)
,是否需要close(file1)
?
- 我應該只使用sys調用,而不是lib函數。
@ H2CO3:它有C++和C標籤,顯然它應該「爲兩者工作」? – 2013-04-20 11:17:10
@MatsPetersson我很害怕。 (但是又一次:誰在Unix上用C++編譯器*編譯C代碼?*反正它是很難看的,即使它是必要的和/或正確的。) – 2013-04-20 11:18:13
您應該使用close來關閉文件描述符。在使用後釋放資源的良好做法。在unix退出後,所有資源都將被回收,但對於任何不支持資源回收的操作系統(如Vxwokrs)都會成爲問題。 – user2181624 2013-04-20 11:27:40