摘要: sed是基于字符流的编辑器。 要想很好的运用sed这一神器,必须懂得它的三个原理:1、脚本中的所有编辑命令都将依次应用于每个输入行(也就是说sed是隐式全局的);2、命令应用于所有的行(全局的),除非程序员限制;3、原始的输入文件并没有改变,编辑命令修改了原始文件的备份,并且将此备份发送到标准输出。sed执行顺序是将所有编辑命令应用于第一行,处理结束之后再应用于第二行,依次类推,与我之前认为的相反。sed维护一个模式空间,也就是临时缓冲区,在应用编辑命令时,将文件的某一行存储在模式空间中,然后依次应用编辑命令。在sed中一般用单引号将指令包围起来,单引号可以阻止shell解释编辑指令中的特殊字 阅读全文
posted @ 2012-03-21 23:50 leealways87 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 代码如下: 1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int 6 main(void) 7 { 8 int i = 0; 9 pid_t fpid;10 printf("i\tson/pa\tppid\tpid\tfpid\n");11 12 for(i = 0; i < 2; i++) {13 fpid = fork();14 if(fpid == 0)15 printf("%d\tchild\t%4... 阅读全文
posted @ 2012-03-21 15:23 leealways87 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 互斥锁顾名思义,锁是用来锁住某种东西的,锁住之后只有有钥匙的人才能对锁住的东西拥有控制权(把锁砸了,把东西偷走的小偷不在我们的讨论范围了)。所谓互斥,从字面上理解就是互相排斥。因此互斥锁从字面上理解就是一点进程拥有了这个锁,它将排斥其它所有的进程访问被锁住的东西,其它的进程如果需要锁就只能等待,等待拥有锁的进程把锁打开后才能继续运行。在实现中,锁并不是与某个具体的变量进行关联,它本身是一个独立的对象。进(线)程在有需要的时候获得此对象,用完不需要时就释放掉。互斥锁的主要特点是互斥锁的释放必须由上锁的进(线)程释放,如果拥有锁的进(线)程不释放,那么其它的进(线)程永远也没有机会获得所需要的互斥 阅读全文
posted @ 2012-03-21 12:53 leealways87 阅读(477) 评论(0) 推荐(0) 编辑