正点原子的:I.MX6U 嵌入式 Linux C 应用编程指南
系统调用(system call)是 linux内核提供给应用层的应用编程接口(API),是linux应用层进入内核的入口。应用程序通过系统调用来使用操作系统提供的各种服务。
C语言库函数构建于系统调用之上,库函数其实是由系统调用封装而来的。
有些库函数则不调用系统调用:strlen()、strcat()、memcpy()、memset()、strchr()等;
系统调用与库函数的区别:
(1)库函数属于应用层,而系统调用是内核提供给应用层的编程接口,属于系统内核的一部分;
(2)库函数运行在用户空间,而调用系统调用会由用户空间陷入到内核空间;
(3)库函数通常是有缓存的,而系统调用是无缓存的,所以性能、效率上,库函数通常优于系统调用;
(4)可移植性:库函数相比于系统调用具有更好的移植性,C语言库在不同的操作系统上接口定义几乎是一样的;
glibc的网址:http://www.gnu.org/software/libc/
man函数的2种形式:
int main(void)
{
}
int main(int argc, char **argv)
{
}
Linux下一切皆文件,文件是Linux系统设计思想的核心理念。