2013-03-17 1 views
0

나는 readline("")을 사용하여 stdin에서 입력을 읽는 작은 C 프로그램을 작성했습니다. ,readline()이 stdout을 표준 출력으로 되 돌리는 이유는 무엇입니까?

test harness --stdout--> | --stdin--> C program 
     ^------stdin--- | <--stdout-----/ 

이는 테스트 하니스는 그 출력의 에코를 수신하는 경우에도 프로그램 자체 비록 : 오히려 말단에서 함께 상호 작용하는 것보다, I는 C 프로그램을 실행하고, 그것의 입력을 제공하는 테스트 하니스를 썼다. readline()이 입력을 울리는 이유는 무엇입니까? 또는 비대화 형 환경에서 readline()을 사용하지 않아야합니까?

+0

'fread'의 문제점은 무엇입니까? – Dave

+0

몇 가지 코드를 게시 할 수 있습니까? –

+0

사실, 아래의 답변에서 알 수 있듯이 'fgets'는 아마 관련성이 높습니다. – Dave

답변

1

readline 라이브러리는 대화식 용도로만 제공됩니다. isatty(STDIN_FILENO)이 거짓이면 프로그램이 fgets()으로 다시 폴백해야합니다.

+0

''getlines()''fgets()'보다 더 좋지 않습니까?] (http://crasseux.com/books/ctutorial/fgets.html)? 아마도 – hertzsprung

+0

. 그러나이 구분은'readline()'을 사용하는 응용 프로그램에서는 중요하지 않습니다. – duskwuff

관련 문제