高级Linux程序设计第三章:进程
每个进程都有一个唯一的进程号。 每个进程都有一个父进程。 系统中的进程以树的形式组织,init进程(进程号为1)作为根。 进程0是调度进程,没有程序与之对应,是内核的一部分。 进程1是init进程,是在系统启动的阶段由内核启动的,对应/sbin/init程序,是普通的用户进程。 程序中可以通过getpid()得到进程号,通过getppid()得到父进程的进程号。 #include #include int main () { printf (“The process ID is %d\n”, (int) getpid ()); printf (“The parent process ID is %d\n”, (int) getppid ()); return 0; } 通过ps命令可以得到系统中运行的所有进程。 通过kill命令可以杀掉某个进程。 1、创建进程 1.1、system函数 system函数提供了一种在程序中运行一个命令的简单方法。 #include int main () { int return_value; return_value = system (“ls -l /”); return return_value; } 1.2、fork及exec函数 当程序调用fork的时候,则一个完全复制的子程序被创建。 父进程将从fork被调用的地方继续执行下去。 子进程也是从相同的地方运行下去。 父进程中fork函数的返回值是子进程的进程号。 子进程中fork函数的返回值是零。 #include #include #include int main () { pid_t child_pid; printf (“the main program process ID is %d\n”, (int) getpid ()); child_pid = fork (); if (child_pid != 0) { printf (“this is the parent process, with id %d\n”, (int) getpid ());
相关文档:
Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk1.zip
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk2.zip
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk3.zip
Oracle9i ......
主题: linux内核模块的程序结构--模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)
一个linux内核模块主要由以下几个部分组成。
1、模块加载函数"用module_init()来指定"(必须)
当通过insmod和modprobe命令加载内核模块时 ......
网络配置:
VMware安装后会有几个默认网卡,分别是Vmnet0,Vmnet1和Vmnet8,常用HOST-ONLY,Bridge和NAT联网方式。本文介绍NAT方式。
Vmware设置:
在Vmware设置好Ubuntu的网络连接方式,选择NAT
IP地址可以通过vmware>edit>virtual networking settings 查看,如下图:
NAT设 ......
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查 ......
原PDF: 《縮減 Linux嵌入式系統軟體: 方法與實例 》
作者:梁元彪 林盈达
刘建文整理(http://blog.csdn.net/keminlau )
KEY:嵌入式操作系统 裁减 linux embedded
国立交通大学资讯科学系
300 新竹市大学路 1001 号
Tel: 03-5712121 ext. 56667 Fax: 03-5712121 e ......