2014-01-21 40 views
1

我正在學習MINIX Book(Tanembaum)上的操作系統,我經歷的一個練習是構建一個非常簡單的shell。我必須在C程序中使用POSIX系統調用包含哪些內容?

爲此,本書提供了這段代碼:

#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什麼#include指令我的程序應該使用它們,假設我正在MINIX上編譯這個程序(和我寫的所有其他函數都在這個.c文件中)?它如何在C程序上使用Linux系統調用?

謝謝!

+5

'人<命令或功能>'是一個非常重要的命令,使用像例如'人fork'。 –

+1

Joachim提到,你需要閱讀文檔 - 不同的API需要不同的頭文件。此外,您可能需要定義「功能宏」,向系統指示您要激活哪些特定的API集。請參閱'man feature_test_macros'。你可能會用'-D_GNU_SOURCE'開始,因爲它包含了幾乎所有的東西。 –

+2

Linux版手冊的主人在這裏:http://man7.org/linux/man-pages fork()的地址是:http://man7.org/linux/man- pages/man2/fork.2.html POSIX參考資料:http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html – alk

回答

1

谷歌搜索的man fork將顯示在linux手冊頁和它指示它需要:

#include <unistd.h> 
相關問題