【发布时间】:2012-11-15 19:51:46
【问题描述】:
我读了这个答案: Must declare function prototype in 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);
如果是这样,那为什么有意义?我使用其他语言,从不需要这样做。
【问题讨论】:
标签: c linux function declaration system-calls