2009-10-03 16 views
7

Napisz mały program w języku C, który podczas kompilacji pobiera inny program z terminala wejściowego, a po uruchomieniu daje wynik dla drugiego programu . (UWAGA: Klucz jest, pomyśl UNIX).Jak pisać program podczas kompilacji?

Załóżmy, że program jest 1.C Następnie podczas kompilacji

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

gdzie jest pytanie? –

+4

Czy tytuł nie jest liczony jako pytanie? – Tom

Odpowiedz

14

To jest stara sztuczka parlaour Chyba

Mój program, tty.c:

#include "/dev/tty" 

Shell:

$ 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

hmm, schludny. 1515151515 –

+2

To naprawdę zaskakująca odpowiedź ... nigdy nie sądziłem, że istnieje taki sposób robienia rzeczy ... – codingfreak

1

Najbardziej rozsądny sposób, aby kompilacja odczytać plik byłoby #include, ale to nie jest dla mnie oczywiste, jak to zrobić czytaj standardowe wejście w przenośny sposób na wszystkich systemach uniksowych (łatwe w Linuksie, dzięki magii /proc !, ale to nie byłoby przenośne).

Powiązane problemy