Próbuję uruchomić mój pierwszy program „procesowy”, ale pojawia się następujący błąd:
./fork.c: line 4: syntax error near unexpected token `('
./fork.c: line 4: `int main()'
Jestem prawie pewien, że kod jest poprawny:
#include <sys/types.h>
#include <stdio.h>
int main() {
pid_t pid;
printf("Hello fork()\n");
switch(pid=fork()) {
case -1: printf("Error by fork().....\n"); exit(0);
case 0: printf("I'm the child process \n"); break;
default: printf("I'm the dad \n"); break;
}
exit(0);
}
Co jest nie tak?
_exit
? Co jest złego w robieniu zarejestrowanego czyszczenia?fork()
działa, obejmuje uczenie się, że może kopiować buforowane dane wyjściowe. Będąc dość skomplikowanym wywołaniem systemowym, pewna dezorientacja jest prawdopodobnie konieczna w procesie uczenia się.Odpowiedzi:
Nie możesz tak po prostu biec
./fork.c
. To nie jest program; jest źródłem programu. Użycie./
zakłada, że plik jest skryptem (którym nie jest) i odpowiednio go traktuje.Jednak, jak zauważono w innej odpowiedzi, istnieją kompilatory (takie jak Tiny C Compiler ), które mogą wykonywać kod C bez jawnej kompilacji.
Ponieważ jest to program typu C, musisz go skompilować. Spróbuj
cc -o fork fork.c
wtedy./fork
; działało tutaj.źródło
cc
jest dowiązaniem symbolicznymgcc
./usr/bin/cc
linki do/opt/SUNWspro/bin/cc
jednego i/opt/sunstudio12.1/bin/cc
drugiego. Niezależnie od tego nadal jest to kompilator C./opt/ansic/bin/cc
.To nie jest program, to kod źródłowy programu.
C jest językiem kompilowanym , co oznacza, że musi zostać „skompilowany” w instrukcje do odczytu maszynowego, zanim będzie można go uruchomić. Podczas używania C „Kompilator C” (
cc
) może to zrobić.Przechodząc do bardziej skomplikowanych programów, używając wielu plików źródłowych i bibliotek zewnętrznych, prawdopodobnie przejdziesz do korzystania z „GNU Compiler Collection” (
gcc
) imake
opisania, jak zamienić kod źródłowy w działający plik wykonywalny.To pytanie zawiera różne informacje na temat różnicy między skryptami (gdy próbujesz traktować swój kod źródłowy) a skompilowanymi programami.
źródło
tcc
( Kompilator Tiny C ) może wykonać kod C bez jego jawnej kompilacji. pastebin.com/5FZiMpEn (Edytowano komentarz, dodając go ponownie. Przepraszam za