我有一個簡單的C代碼片段如下:使用回滾()與POPEN()
#include <stdio.h>
void main() {
FILE *f;
char c;
f = popen("ls", "r");
while ((c = fgetc(f)) != EOF) {
//Some tasks
}
rewind(f);
while ((c = fgetc(f)) != EOF) {
printf("%c", c);
}
fclose(f);
}
我不知道爲什麼代碼輸出什麼。看來rewind()函數不起作用。請幫助找出我錯在哪裏。謝謝。
您正在閱讀程序的輸出。僅僅因爲你可以'回滾()'文件句柄並不意味着'ls'會知道你倒過來並且應該重新啓動它的列表。 –