2009-10-03 8 views
7

コンパイル中に入力端末から別のプログラム を受け取り、実行中に2番目の プログラムの結果が得られる小さな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 ですが、それはそれを作るためにどのように私には明らかではありません標準入力をすべてのUnixシステム上で移植可能な方法で読み込みます(Linuxの場合、/procの魔法のおかげで簡単ですが、それは移植性がありません)。

関連する問題