私はこの答えを読みました: C で関数プロトタイプを宣言する必要がありますか?
私の質問はより具体的です:
access()
、、、、、などのシステム コールを使用するプログラムでは、open()
すべてのシステム コール関数を宣言する必要がありますか? それがCの仕組みですか?私は以下を得ているので:creat()
write()
read()
hw1.c: In function ‘main’:
hw1.c:50:9: warning: implicit declaration of function ‘access’ [-Wimplicit-function-declaration]
hw1.c:131:9: warning: implicit declaration of function ‘lseek’ [-Wimplicit-function-declaration]
hw1.c: In function ‘writeFile’:
hw1.c:159:17: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration]
基本的に、C は私が使用しているすべてのシステム コール関数に対して怒っているようです。私はCに少し慣れていないので、自分が書いた関数を宣言する必要があることを知っていても、これは奇妙に思えます.Cはシステムコール関数を知っているので、コードで明示的に宣言する必要はないと思います.
私はこのようなことをする必要がありますか:
int access(const char *pathname, int mode);
もしそうなら、なぜそれは理にかなっているのですか?私は他の言語を使用していますが、これを行う必要はありません。