2009-10-03 4 views
7

컴파일하는 동안 입력 터미널에서 다른 프로그램 을 가져오고 실행 중일 때 두 번째 프로그램에 대한 결과를 제공하는 작은 C 프로그램을 작성합니다. (참고 : 핵심은 UNIX라고 생각합니다.)컴파일하는 동안 프로그램을 작성하는 방법은 무엇입니까?

가정 컴파일 파일이 #include 것 읽을 수 있도록

$ cc -o 1 1.c 
int main() 
{ 
    printf("Hello World\n"); 
} 
^D 
$ ./1 
Hello World 
$ 
+0

질문입니까? –

+4

제목이 제목으로 간주되지 않습니까? – Tom

답변

14

이 오래된 parlaour 트릭 내가 추측된다

내 프로그램 tty.c :

#include "/dev/tty" 

쉘 :

$ gcc tty.c 
int main() { 
printf("Hey\n"); 
} *Ctrl-D here* 
In file included from tty.c:1: 
/dev/tty: In function ‘main’: 
/dev/tty:2: warning: incompatible implicit declaration of built-in function ‘printf’ 
$./a.out 
Hey 
+1

흠. 1515151515 –

+2

정말 놀라운 대답입니다 ... 그런 일을 할 방법이 없다고 생각하지 않았습니다 ... – codingfreak

1

가장 합리적인 방법을 컴파일하는 동안이 프로그램은, 그리고 1.C 이지만, 그것을 만드는 방법을 나에게 분명 아니다 모든 유닉스 시스템에서 이식 가능한 방식으로 표준 입력을 읽는다. (리눅스에서는 쉽게 /proc!의 마술 덕분에 쉽게 읽을 수 있지만 이식성은 없다).

관련 문제