それはまた仕事をdoestpopen()で開いたファイルにEOFがありませんか?
を私はバッファに、ディレクトリの内容を書きたいが、私は常に 「バッファ用の大型のDIR」を取得...とディレクトリは最大3000文字の長さで、なぜ私は見当がつかない'\ n' の代わりにEOF
#include <stdio.h>
int main(int argc,char** argv){
FILE* fp;
fp=popen("ls /etc","r");
char c;
int i=0;
char buffer[20000];
while((c=fgetc(fp))!=EOF){
buffer[i]=c;
i++;
if(i=20000){
printf("dir to large for buffer");
break;
}
}
buffer[i]='\0';
}
'i = 20000' - >' i == 20000-1'です。 'char c;' - > 'int c;' – BLUEPIXY
無関係ですが、本当にコードをインデントする必要があります。 BTWのインデントはあなたの先生を喜ばせるものではありませんが、それはあなたのために(そしてまた私たちのために)あなたのプログラムを読むことができます。 –