stdin, stdout, stderr 에대하여 문의드립니다.
글쓴이: antz / 작성시간: 화, 2003/09/30 - 2:15오후
일반적인 리눅스 환경에서 gcc에 대해서 문의드립니다.
1. 프로그램에 기본적으로,
stdin, stdout, stderr 가 file descriptor가 0,1,2로 open 되있는게
맞나요?
1-1. 아니면, stdin, stdout, stderr를 쓰기 위해 선언이 필요한가요???
2. stdin, stdout, stderr가 선언되있다가 close될수 있나요?
파일의 갯수 제한이나 어떤 경우에 stdin, stdout,stderr가
close 될 수 있나요???
2-2. stdin, stdout, stderr가 close 될 수 있다면,
close 되지 않게 할 수 있나요?
3. 무한루프에서 파일 입출력이 많은경우.
scanf 문이 무시될수 있게 stdin이 close 될 수 있나요?
3-3. scanf가 무시될경우 해결 방법은 어떤건가요?
답변 부탁드립니다.
감사합니다.
Forums:
Re: stdin, stdout, stderr 에대하여 문의드립니다.
일반적인 환경에서 file descripter 0, 1, 2는 그렇게 예약되어 있습니다.
시스템 콜을 이용하여 stdin, stdout, stderr등도 다른 file descripter와 마찬가지로 close 할 수 있습니다. 파이프로 IPC할때 그럴 필요가 많이 있지요. close되지 않게 한다는 것은 무슨뜻인지 잘 모르겠네요.. 자신의 프로세스의 file descripter를 열고 닫고는 자기 맘 아닌가요.. (제가 문제 이해를 잘못했나요... -_-a)
이것은 보다 로우레벨에서의 문제인거 같은데요.. stream크기 이상의 데이터가 들어올때 어떻게 처리하도록 되어있는지 알아봐야 합니다. 저도 scanf의 구현을 직접본적이 없어서 모릅니다. 이것은 직접 scanf의 코드를 보셔서 정확한 문제점과 해결방안을 생각해보시는것이 좋을듯 합니다. 다른 분들의 구체적인 도움이나 문서가 없으면 빡시겠네요..;
[code:1]fclose(stdin);fclose&#
서버쪽 프로그래밍인가? 거기서 보안을 위해
표준 입/출력을 닫아버린다고 합니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
답변 감사드립니다.명확하지 않았던것이 해소되는것 같네요.다음은
답변 감사드립니다.
명확하지 않았던것이 해소되는것 같네요.
다음은 코드중에 에러가 나는 부분 입니다.
다음은 프로그램 실행결과 입니다.
Lum7671's Weblog
댓글 달기