>> Edit article
이름
제목
패스워드
//////////////////////////////////////// 글쓴이: lanewz 글쓴날: 2000-12-13 20:02:44 : stdin 과 "r" 모드로 연 파일 스트림간에 차이가 있나요? : 제가 혼자 쓸 작은 프로그램을 만들면서 만든 함수 중에 : (FILE * )형 인수로 받는 함수 있는데 여기에 stdin 을 넘겨주면 : 에러가 나고 fopen 의 "r" 모드로 연 파일 스트림을 넘겨주면 : 잘 동작합니다. : 디버깅 해보면 에러 나는 곳도 실행 할때마다 달라집니다. : 대부분 fseek(), fgets() 등에서 에러가 납니다. : 뭔가 문제인지, 혹은 stdin 과 "r" 모드로 연 스트림과의 차이점을 : 아시는 분의 답변 바랍니다. : : stdin 이 바이너리 모드라서 그런가요? : 리눅스는 텍스트/바이너리 스트림 구분이 없다고 들었는데.... : : 참고로 스트림을 "rb" 모드로 열었을 때도 마찬가지 였습니다. : : -- : lanewz ///////////////////////////// [RE] 글쓴이: 조성석 글쓴날: 2000-12-14 15:22:04 리눅스에서 그런가요? 해보니까 난 잘되는데 ... #include 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); } ///////////////////////////// [RE][RE] 제 질문은 ........... /**************************/ #include <stdio.h> int main() { char buf[256]; FILE *fs; int n = 0; fs = stdin; /* 1 */ //fs = fopen("a","r"); /* 2 */ while( fgets(buf,256,fs)) { long off; printf("%s",buf); if( ++count == 5 ) { off = ftell(fs); printf("before offset = %d",off); fseek(fs,-1*strlen(buf),SEEK_CUR); /* 3 */ off = ftell(fs); printf("after offset = %d (%m)",off); break; } } } /***********************/ 이거 실행 시키면 /* 2 */ 넣고 실행하면 제대로 되지만 /* 1 */ (stdin) 넣고 실행하면 /* 3 */ 에서 에러가 나죠. 제가 알고 싶은 건 바로 이겁니다. stdin 과 "r" 모드로 연 파일 스트림의 차이가 뭔가요?--lanewz
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved