UNIX
文章平均质量分 84
毒师
这个作者很懒,什么都没留下…
展开
-
fork 和 vfork
vfork用于创建一个新进程,而该新进程的目的是exec一个新进程, vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间 完全复制到子进程中,因为子进程会立即调用exec,于是也就不会存放该地址空间。不过在子进程中调用exec或exit之前,他在父进程的空间中运行。 vfork和fork之间的另一个区别是: vfork保证子进程先运行,在她调用exec或exit之后 ...原创 2011-09-05 10:49:25 · 120 阅读 · 0 评论 -
exec函数族
用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 其实有六种以exec开头的函数,统称exec函数: #include int...原创 2011-09-05 11:04:33 · 140 阅读 · 0 评论 -
浅析pthread_cond_wait
[b][size=large][align=center]浅析pthread_cond_wait[/align][/size][/b] 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 一 pthread_cond_wa...原创 2011-09-11 16:01:03 · 272 阅读 · 0 评论 -
undefined reference to `pthread_create’
所以如果在gcc的编译中(更准确的说是链接中)没有启动pthread的话,就会出现如下的链接错误。 pthread_test.c:(.text+0x8a): undefined reference to `pthread_create’ collect2: ld returned 1 exit status 另外一个参数-lpthread也能起到同样的作用。所以可以看出-pthread...原创 2011-09-11 19:25:15 · 99 阅读 · 0 评论 -
浅析Posix信号灯
[b][size=large][align=center]Posix信号灯[/align][/size][/b] 信号灯分为有名信号灯和内存信号灯,本文只讲有名信号灯。 一 有名信号灯API 1.sem_open 函数原形:sem_t *sem_open(const char *name,int oflag,/*mode_t mode,unsigned int value*...原创 2011-09-11 20:19:46 · 101 阅读 · 0 评论 -
GCC 指令
[align=center][size=large]GCC指令[/size][/align] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as...原创 2012-02-27 19:58:03 · 89 阅读 · 0 评论