wait和waitpid函数
无论进程是正常结束还是非正常结束,内核都会发送SIGCHLD信号给它的父进程,以告知子进程结束。因为子进程结束是一个异步事件,它可以发生在任何父进程运行的时间,…
无论进程是正常结束还是非正常结束,内核都会发送SIGCHLD信号给它的父进程,以告知子进程结束。因为子进程结束是一个异步事件,它可以发生在任何父进程运行的时间,…
之前说过进程正常结束的五种主法: 在main函数中执行return函数。 调用exit函数。这个函数被 ISO C定义并且会调用所有被atexit注册的句柄,之…
vfork和fork函数的调用方法(calling sequence)和返回值是一样。但是两个函数的语义不同。 当目地是使用exec建立一个新的子进程时,可以使…
一个存在的进程可以通过fork函数建立一个新的进程。 #include <unistd.h> pid_t fork(void); Returns: …
进程 ID虽然是唯一的但是可以重用。当一个进程被结束后,它的ID可以重用。多数的UNIX系统都实现了延迟重用的算法,这用来防止一些新进程使用该ID去联系已经结束…
每个进程都有一组资源限制,它们中的一些可以被getrlimit和setrlimit函数查询和改变。 #include <sys/resource.h>…
在C语言中,不能像其它语言一样使用goto函数跳转。而是使用setjmp和longjmp函数代替这类跳转。之后就会看到在深层嵌套中这两个函数处理错误条件是非常有…
环境变量通常是这样的形式: name=value UNIX内核不理会它的名字,只把它解释给多种应用程序。 ISO C定义了得到环境变量值的函数,但是环境变量的值…
ISO C指定了三个函数用于内存分配: malloc,它分配指定字节数的内存空间。被分配的内存空间初始值是随机。 calloc,它分配指定对象数的内存空间。空间…
共享库在内存中维护一个所有进程引用的库例程(routine)的拷贝代替可执行程序上通用库的例程(routine)。这减少了可执行程序的大小,但也曾加了程序首次运…