读书人

瞅unix环境高级编程有问

发布时间: 2013-07-09 09:50:48 作者: rapoo

看unix环境高级编程有问。
算是linux初学者,之前看过鸟哥,还有一些shell编程的东东,看这本书时候发现很多函数,我姑且自己理解为api接口,整本书都在讲函数原型,函数的用法。
这就让我这个初学者犯愁了,这些函数跟shell脚本之间有什么联系呢(因为之前看了shell脚本内容居多,印象较为深刻),比如shell中chmod指令,这边是chmod函数。还有函数中还可以嵌入shell脚本,更头疼。求大神指教
[解决办法]

引用:
Quote: 引用:

unix是讲C语言在linux/unix下编程的,是要编译的,shell是脚本语言,是把命令组成在一起的,不用编译,有些命令和C函数,也就是你说的api同名,他们就是同名而已,不能混合使用。当然C语言可以和Shell互相调用的,也是使用api。

比如其中是这么说的是用 ls -l命令的时候使用了stat函数,来获得一个文件的所有信息,是不是可以理解为shell脚本输入ls -l后,内核调用了stat函数呢

shell的命令都是由C语言写的,C语言会调用系统的api,准确的说是系统调用。
[解决办法]
shell调用的都是一些脚本或者二进制,由PATH指定的路径查找到的,你可以whereis/which 命令名,看看这些命令到底是个脚本还是个二进制。

命令的源代码可以在coreutils或者iputils各种里面找到。
[解决办法]
鸟哥偏重应用/使用
APUE 偏重理论/编程
[解决办法]
你就把shell当成别人已经制作好的一套工具来用就行,bash本身也是C语言开发的,会有一些系统调用
APUE讲的很多东西,你就把他当成Unix环境开发指导好了,就比如你在Windows下写的代码很可能就不能用在Unix环境下,当然这取决于操作系统,举个例子,Windows下用socket开发,写出来的代码和Unix下肯定不一样,因为这主要依赖于两个操作系统在文件系统实现上的不同。

读书人网 >C语言

热点推荐