linux系统调用 shell命令 c库函数怎么区分
3个回答
展开全部
首先,命令应该是好和其他两个区分开来的了,因为命令都是可以直接敲在shell上面回车执行的,而系统调用和库函数都不行;
其次,Linux系统调用和C库函数都是函数的形式,即都是“func(args)”的形式,但系统调用是
由系统内核对外提供的服务接口;C库函数和你自己写的普通的函数没有本质的区别,只是在C标准库中而已,Linux上面glibc就是C函数库。从表面上看两者不太好区分,不过,你可以从它们需要包含的头文件来区分,C库函数像printf在<stdio.h>中,std就是标准(standard)的缩写形式,因此在<stdxxx.h>中的函数,基本都是C库函数;像 ssize_t read(int fd, void *buf, size_t count);这样很多的系统调用是包含在<unistd.h>中的,unistd意思是UNIX Standard,从这个意义就可以区分了。
希望对你有所帮助,如还有问题,可随时联系我:-)
其次,Linux系统调用和C库函数都是函数的形式,即都是“func(args)”的形式,但系统调用是
由系统内核对外提供的服务接口;C库函数和你自己写的普通的函数没有本质的区别,只是在C标准库中而已,Linux上面glibc就是C函数库。从表面上看两者不太好区分,不过,你可以从它们需要包含的头文件来区分,C库函数像printf在<stdio.h>中,std就是标准(standard)的缩写形式,因此在<stdxxx.h>中的函数,基本都是C库函数;像 ssize_t read(int fd, void *buf, size_t count);这样很多的系统调用是包含在<unistd.h>中的,unistd意思是UNIX Standard,从这个意义就可以区分了。
希望对你有所帮助,如还有问题,可随时联系我:-)
参考资料: 个人经验
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询