当前位置: 技术问答>linux和unix
各位帮我介绍一下API
来源: 互联网 发布时间:2016-10-25
本文导语: unix下的API是什么意思,如果需要写自己的API应该怎么做啊? | API全称应该是Application Programming Interface——应用程序编程接口,应用程序可以是任何语言写的(包括shell),比如我完成了加法...
unix下的API是什么意思,如果需要写自己的API应该怎么做啊?
|
API全称应该是Application Programming Interface——应用程序编程接口,应用程序可以是任何语言写的(包括shell),比如我完成了加法的运算,然后我提供了一个函数给外部来用,那么这个函数就是一个API。
关于shell其实是因为没有库的说法而已,但是它依然可以提供API,比如我写了一个对字串分段的函数,把它单独放到一个文件中,以后我在用的这个功能的时候,我就可以直接把那个文件那过来调用函数就可以,不用拷贝黏贴,这也可以看做事API只是它没有对外人发布而已。
“那我用shell怎么调用啊,需要将这个程序文件编译成什么格式,shell里要怎么写”,首先你得了解shell编程时什么东西,它是一个解析性语言,Linux终端(本来我想写shell的,但是怕你弄混了)会解析你的.sh文件,然后在终端中执行文件中对应的命令,并可以把命令结果存放到变量中,它调用的东西必须是可以“独立执行”的!所以它不能调用c的API,因为c的API是不能“独立执行”
关于shell其实是因为没有库的说法而已,但是它依然可以提供API,比如我写了一个对字串分段的函数,把它单独放到一个文件中,以后我在用的这个功能的时候,我就可以直接把那个文件那过来调用函数就可以,不用拷贝黏贴,这也可以看做事API只是它没有对外人发布而已。
“那我用shell怎么调用啊,需要将这个程序文件编译成什么格式,shell里要怎么写”,首先你得了解shell编程时什么东西,它是一个解析性语言,Linux终端(本来我想写shell的,但是怕你弄混了)会解析你的.sh文件,然后在终端中执行文件中对应的命令,并可以把命令结果存放到变量中,它调用的东西必须是可以“独立执行”的!所以它不能调用c的API,因为c的API是不能“独立执行”
|
shell是不能调用c语言的函数的,只能调用编译好的执行程序
|
Linux系统下的API(Application Interface)实质都是一些系统调用,也是各种程序和系统内核打交道的借口,我们在linux下使用的很多库函数都是通过封装API形成的,例如printf,scanf等等,当然我们也可以写程序直接调用API,而无需通过库函数了。
当调用库函数时,如果遇到API调用,系统会通过软件中断(SWI)是系统陷入内核,内核中的软中断处理函数sys_call()会根据相关的条件码去执行相关的系统调用,当完成工作后返回到用户进程。
典型的驱动程序就属于API层上,也是提供了用户和内核交互的借口,这些都是通过软中断实现。
当调用库函数时,如果遇到API调用,系统会通过软件中断(SWI)是系统陷入内核,内核中的软中断处理函数sys_call()会根据相关的条件码去执行相关的系统调用,当完成工作后返回到用户进程。
典型的驱动程序就属于API层上,也是提供了用户和内核交互的借口,这些都是通过软中断实现。