Я изучаю операционные системы из Книги MINIX (Танембаум), и одно из упражнений, которые я выполнил, — это создание ОЧЕНЬ простой оболочки.
Для этого в книге есть такой фрагмент кода:
#define TRUE 1
while (TRUE) {
type_prompt();
read_command(command, parameters);
if (fork() != 0) {
waitpid(-1, &status, 0);
} else {
execve(command, parameters, 0);
}
}
Это не вся программа на C (очевидно), и мне нужно объявить некоторые переменные и написать некоторые функции самостоятельно. Но fork()
, например, является системным вызовом (как сказано в книге, он должен быть совместим с POSIX).
Какие #include
директивы должны быть в моей программе, чтобы их использовать, предполагая, что я уже компилирую эту программу в MINIX (и все остальные функции, которые я написал, находятся в том же файле .c)? Как работает использование системных вызовов Linux в программах на C?
Спасибо!
man <command-or-function>
— очень важная команда, используемая, например, какman fork
. - person Some programmer dude   schedule 21.01.2014man feature_test_macros
. Вы, вероятно, будете в порядке, чтобы начать с-D_GNU_SOURCE
, так как это включает в себя почти все. - person Michael Burr   schedule 21.01.2014fork()
находится здесь: man7.org/linux/man -pages/man2/fork.2.html Справочник по POSIX: pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html - person alk   schedule 21.01.2014