linux编程之系统调用

来源:互联网 发布:网络女胖子图片搞笑 编辑:程序博客网 时间:2024/06/12 22:39

系统调用:System Calls/LINUX API

是一些在应用程序里面调用的函数,这些函数间接地调用了OS的功能,即linux的内核的功能

在形式上,如果一个函数不在任何一个库中,则它是系统调用。

如printf不是系统调用,它包含在libc库中,而mkdir是系统调用。

用man  2 mkdir查看命令mkdir可以知道,这个函数包含在<sys/stat.h>和<sys/types.h>这两个头文件中

函数原型为:int mkdir(const char* pathname , mode_t mode)

那么如何在程序里面调用这个函数来建立文件目录呢,

事例代码main.cpp


编译执行main.cpp及最终的可执行程序就可以生成目录testdir,其权限是0666.

那么如何在代码中使用系统调用呢?

步骤如下:

1)查找文档,寻找可以使用的system call

2)查看帮助man

3)测试代码,测试函数的用法

4)整合代码,将测试代码整合到目标项目中。

那么如何封装呢?以使用opendir,readir为例:

dir.h


dir.cpp


test.cpp


编译链接:g++ test.cpp dir.cpp -o dir
./dir
0 0