![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux进程编程
文章平均质量分 74
guoping16
这个作者很懒,什么都没留下…
展开
-
setjmp和longjmp
在C语言中,goto语句只允许函数内使用,不允许在函数间使用。而执行这种跳转功能的是函数setjmp和longjmp,这两个函数对于处理很深的嵌套函数调用中的出错情况非常有用。(1)setjmp函数原型所需头文件#include 函数说明setjmp用来保存堆栈环境,然后将目前的地址做一个记号,而在程序其他地方调用longjm原创 2011-07-01 16:45:00 · 1279 阅读 · 1 评论 -
多进程并发项目案例
(1)项目说明 该项目是笔者参与的某省建设银行省分行数据仓库项目,本节案例主要说明该项目的月末程序在多进程并发上的实现。下面是该案例的简要说明,以及该案例在硬件、数据库配置、数据库建库脚本、程序上调优的简要介绍。 月末程序主要功能是计算各个客户的原创 2011-07-04 15:33:06 · 3065 阅读 · 0 评论 -
system函数
(1)system实现说明system在其实现中调用了fork、exec和waitpid,因此有三种返回值:如果fork失败或者waitpid返回除EINTR之外的出错,则system返回-1,而且errno中设置了错误类型。如果exec失败,则其返回值如同S原创 2011-07-04 15:03:41 · 1110 阅读 · 0 评论 -
守护进程(Daemon)的编写
守护进程,也就是通常所说的Daemon进程(又称精灵进程),是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,如作业规划进原创 2011-07-04 15:26:42 · 1203 阅读 · 1 评论 -
进程中的三种用户ID
(1)进程中三种用户ID的含义表12-2列出了进程执行时,与进程相关联的三种用户ID,这三种ID在Linux书刊中经常提及,但也是易混淆不好理解的地方。 表12-2 三种用户ID意义表 与每个进程相关联的用户ID和组ID原创 2011-07-04 14:50:47 · 3912 阅读 · 0 评论 -
exec函数
(1)exec函数说明fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、原创 2011-07-04 14:16:39 · 38212 阅读 · 4 评论 -
wait和waitpid函数
(1)wait函数说明当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件,这种信号也是内核向父进程发的异步通知。父进程可以忽略该信号,或者提供一个该信号发生时即被调用执行的函数(信号处理程序)。父进程同步等待子进程退原创 2011-07-04 14:31:31 · 6537 阅读 · 0 评论 -
Linux进程编程基本概念
1.1 登录1. 用户登录名登录Linux系统时,需先键入用户登录名,然后键入用户密码,系统通过/etc/passwd(口令文件)文件校验用户登录名和用户密码。口令文件中的登录项由7个以冒号分隔的字段组成,分别为登录名、加密口令、数字用户ID(224)、数原创 2011-07-04 15:45:20 · 1169 阅读 · 0 评论 -
会话、进程组与僵死进程
1. 终端 在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),Shell进程启动的其他进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程原创 2011-07-04 15:18:35 · 2520 阅读 · 2 评论 -
Linux环境变量
1. 环境变量 环境变量用于描述该用户操作环境下特定意义的变量,可以用env命令查看该用户下生效的环境变量。和命令行参数argv类似,环境变量表也是一组字符串,如下图12-8所示。 图12-8 环境变量图 libc库中定义的全局变量environ指向环境变量表,由于environ变量没有包含在任何头文件中原创 2011-07-01 15:01:00 · 2134 阅读 · 0 评论 -
进程的堆栈空间
每一个进程都有自己的一个进程堆栈空间。在Linux界面执行一个执行码时,Shell进程会fork一个子进程,再调用exec系统调用在子进程中执行该执行码。exec系统调用执行新程序时会把命令行参数和环境变量表传递给main函数,它们在整个进程堆栈空间中的位置如下图12-7所示。 图12-7 进程堆栈空间图原创 2011-07-01 14:30:00 · 10915 阅读 · 1 评论 -
Linux进程标识
1. 进程标识(1) 进程标识说明每个进程都有一个非负整型的唯一进程ID。因为进程ID标识符总是唯一的,常将其用作其他标识符的一部分以保证其唯一性。在Linux中,进程ID 0是调度进程,常常被称为交换进程。该进程并不执行任何磁盘上的程序—它是内核的一部分,因此也被称为系统进程。进程ID 1通常是init进程,在自举过程结束时由内核调用。init通常读与系统有关的初始化文件(/原创 2011-07-01 17:14:00 · 3221 阅读 · 0 评论 -
fork系统调用
(1)fork系统调用说明fork系统调用用于从已存在进程中创建一个新进程,新进程称为子进程,而原进程称为父进程。fork调用一次,返回两次,这两个返回分别带回它们各自的返回值,其中在父进程中的返回值是子进程的进程号,而子进程中的返回值则返回 0。因此,可以通过返回值来判定该进程是父进程还是子进程。使用fork函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地原创 2011-07-01 17:35:00 · 16484 阅读 · 0 评论