コンパイル中に入力端末から別のプログラム を受け取り、実行中に2番目の プログラムの結果が得られる小さなCプログラムを作成します。 (注:キーは、UNIXと思う)。コンパイル中にプログラムを書くには?
と仮定、コンパイルファイルが#include
だろう読ん作るために
$ cc -o 1 1.c
int main()
{
printf("Hello World\n");
}
^D
$ ./1
Hello World
$
コンパイル中に入力端末から別のプログラム を受け取り、実行中に2番目の プログラムの結果が得られる小さなCプログラムを作成します。 (注:キーは、UNIXと思う)。コンパイル中にプログラムを書くには?
と仮定、コンパイルファイルが#include
だろう読ん作るために
$ cc -o 1 1.c
int main()
{
printf("Hello World\n");
}
^D
$ ./1
Hello World
$
この古い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
うん、まあまあ。 1515151515 –
それは本当にすばらしい答えです...決してそこに物事を行う方法があるとは思わなかった... – codingfreak
最も合理的な方法をコンパイル中のプログラムは、その後1.C ですが、それはそれを作るためにどのように私には明らかではありません標準入力をすべてのUnixシステム上で移植可能な方法で読み込みます(Linuxの場合、/proc
の魔法のおかげで簡単ですが、それは移植性がありません)。
疑問ですか? –
タイトルは質問としてカウントされませんか? – Tom