我读了这个答案: 必须在 C 中声明函数原型?
我的问题更具体:
在使用系统调用(如access()
, open()
, creat()
, write()
, read()
...)的程序中,我必须声明每个系统调用函数吗?C是这样工作的吗?因为我得到以下信息:
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);
如果是这样,那为什么有意义?我使用其他语言,从不需要这样做。