리눅스에서 그런가요?
해보니까 난 잘되는데 ...
#include <stdio.h>
int main()
{
char line[1024];
FILE *fp;
fp = fopen("aa.c","r");
// fp = stdin;
while (fgets(line,1023,fp))
{
line[1023] = 0;
if ( line[strlen(line)-1] == '' )
line[strlen(line)-1] = 0;
printf("line=%s", line);
//fseek(fp,0,0);
}
fclose(fp);
}
: stdin 과 "r" 모드로 연 파일 스트림간에 차이가 있나요?
: 제가 혼자 쓸 작은 프로그램을 만들면서 만든 함수 중에
: (FILE * )형 인수로 받는 함수 있는데 여기에 stdin 을 넘겨주면
: 에러가 나고 fopen 의 "r" 모드로 연 파일 스트림을 넘겨주면
: 잘 동작합니다.
: 디버깅 해보면 에러 나는 곳도 실행 할때마다 달라집니다.
: 대부분 fseek(), fgets() 등에서 에러가 납니다.
: 뭔가 문제인지, 혹은 stdin 과 "r" 모드로 연 스트림과의 차이점을
: 아시는 분의 답변 바랍니다.
:
: stdin 이 바이너리 모드라서 그런가요?
: 리눅스는 텍스트/바이너리 스트림 구분이 없다고 들었는데....
:
: 참고로 스트림을 "rb" 모드로 열었을 때도 마찬가지 였습니다.
:
: --
: lanewz