当前位置: 技术问答>linux和unix
本人初学Linux以及Linux C开发,现在有几个问题请大家帮忙看看,多谢!(本人只有ANSI C的基础)
来源: 互联网 发布时间:2017-04-12
本文导语: 以下RHEL操作系统为例 1. /usr/include/bits, /usr/include/sys, /usr/include/linux这三个目录下面都有许多的.h头文件,例如types.h文件在这三个目录下面都存在, 那么这三个目录有什么不同 ?如果我需要去寻找代码中相应的h头文...
以下RHEL操作系统为例
1. /usr/include/bits, /usr/include/sys, /usr/include/linux这三个目录下面都有许多的.h头文件,例如types.h文件在这三个目录下面都存在, 那么这三个目录有什么不同 ?如果我需要去寻找代码中相应的h头文件的位置的话,应该去哪个目录去找呢 ?
2. 在Linux C中,创建子进程必须通过fork函数吧? 子函数的调用与子进程没有直接的关系吧?例如:在main函数体中又调用了一个test()子函数,那么在执行这个test()子函数的时候,应该没有创建子进程,还是只有一个父进程存在的吧 ?
3. 在学习IPC进程间通信的时候,本人被进程组、会话、 控制终端这三个概念搞晕了,举例来说,我使用SecureCRT远程登录了一台主机,并且与这台主机同时建立了3个Telnet连接(就是在SecureCRT的标题栏中有3个Sheet表示的连接),那么在这种情形下,是不是有3个会话 ? 控制终端有几个 ?1个会话中有几个进程组 ?1个控制终端中有几个进程组 ? 会话与控制终端的区别是什么 ?
4. 父进程中的status值是否就是子进程中的exit(EXIT_SUCCESS)函数的EXIT_SUCCESS值 ?例如:在子进程中执行exit(EXIT_SUCCESS)退出子进程的执行,那么在父进程中输出子进程的结束状态status值,此时输出的status值是多少 ?一定是0吗 ?
5. 在Linux 管道开发中,一般都是父进程写,子进程读,那么子进程写,父进程读 可以吗 ?
以上问题比较基础,请知道的朋友帮忙说说看 ,非常感谢 !
1. /usr/include/bits, /usr/include/sys, /usr/include/linux这三个目录下面都有许多的.h头文件,例如types.h文件在这三个目录下面都存在, 那么这三个目录有什么不同 ?如果我需要去寻找代码中相应的h头文件的位置的话,应该去哪个目录去找呢 ?
2. 在Linux C中,创建子进程必须通过fork函数吧? 子函数的调用与子进程没有直接的关系吧?例如:在main函数体中又调用了一个test()子函数,那么在执行这个test()子函数的时候,应该没有创建子进程,还是只有一个父进程存在的吧 ?
3. 在学习IPC进程间通信的时候,本人被进程组、会话、 控制终端这三个概念搞晕了,举例来说,我使用SecureCRT远程登录了一台主机,并且与这台主机同时建立了3个Telnet连接(就是在SecureCRT的标题栏中有3个Sheet表示的连接),那么在这种情形下,是不是有3个会话 ? 控制终端有几个 ?1个会话中有几个进程组 ?1个控制终端中有几个进程组 ? 会话与控制终端的区别是什么 ?
4. 父进程中的status值是否就是子进程中的exit(EXIT_SUCCESS)函数的EXIT_SUCCESS值 ?例如:在子进程中执行exit(EXIT_SUCCESS)退出子进程的执行,那么在父进程中输出子进程的结束状态status值,此时输出的status值是多少 ?一定是0吗 ?
5. 在Linux 管道开发中,一般都是父进程写,子进程读,那么子进程写,父进程读 可以吗 ?
以上问题比较基础,请知道的朋友帮忙说说看 ,非常感谢 !
|
/usr/include/bits, /usr/include/sys这两个是glibc的部分
/usr/include/linux是随着kernel一起发布的
调用test()函数仅仅是调用,没有create new process
有3个sessions,如果不是在图形界面,session可以等同于控制终端。
子进程可以把结束的状态汇报给父进程。
pipe应该是双向的,处理好的话,父子进程都可以读写。
/usr/include/linux是随着kernel一起发布的
调用test()函数仅仅是调用,没有create new process
有3个sessions,如果不是在图形界面,session可以等同于控制终端。
子进程可以把结束的状态汇报给父进程。
pipe应该是双向的,处理好的话,父子进程都可以读写。
|
1. C 的 头文件都在/usr/include目录下
2. Unix的头文件大部分也在/usr/include目录,小部分在/usr/include/sys目录
3. /usr/include/linux是与Linux内核相关的头文件
4. /usr/include/bits是glibc的内部头文件,一般不要在应用程序中直接include
如果希望应用程序能移植到其他Unix操作系统,就不要#include 3, 4 的文件。
2. Unix的头文件大部分也在/usr/include目录,小部分在/usr/include/sys目录
3. /usr/include/linux是与Linux内核相关的头文件
4. /usr/include/bits是glibc的内部头文件,一般不要在应用程序中直接include
如果希望应用程序能移植到其他Unix操作系统,就不要#include 3, 4 的文件。