Я пытаюсь запустить свою первую программу «процесс», но я получаю следующую ошибку:
./fork.c: line 4: syntax error near unexpected token `('
./fork.c: line 4: `int main()'
Я уверен, что код правильный:
#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);
}
Что случилось?
_exit
? Что плохого в выполнении очистки, которая была зарегистрирована?fork()
работы включает в себя изучение того, что он может копировать буферизованный вывод. Будучи достаточно сложным системным вызовом, некоторая путаница, вероятно, необходима в процессе обучения.Ответы:
Ты не можешь просто бежать
./fork.c
. Это не программа; это источник для программы. Использование./
предполагает, что файл является сценарием (а это не так) и обрабатывает его соответствующим образом.Однако, как отмечено в другом ответе, существуют компиляторы (например, Tiny C Compiler ), которые могут выполнять код на C без явной его компиляции.
Так как это программа на C, вы должны скомпилировать программу. Попробуй
cc -o fork fork.c
тогда./fork
; это сработало здесь.источник
cc
является символической ссылкой наgcc
./usr/bin/cc
ссылки/opt/SUNWspro/bin/cc
на одну и/opt/sunstudio12.1/bin/cc
другую. Несмотря на это, это все еще компилятор Си./opt/ansic/bin/cc
.Это не программа, это исходный код программы.
C - это скомпилированный язык, то есть он должен быть «скомпилирован» в машиночитаемые инструкции, прежде чем вы сможете его запустить. Поскольку вы используете C, «C Compiler» (
cc
) может сделать это.Переходя к более сложным программам с использованием нескольких исходных файлов и внешних библиотек, вы, вероятно, перейдете к использованию «Коллекции компиляторов GNU» (
gcc
) иmake
опишете, как превратить исходный код в рабочий исполняемый файл.Этот вопрос содержит различную информацию о разнице между сценариями (когда вы пытаетесь обработать свой исходный код) и скомпилированными программами.
источник
tcc
( Tiny C Compiler ) может выполнять код на C без явной его компиляции. pastebin.com/5FZiMpEn (отредактированный комментарий, добавив его заново. Извините, что