摘要:
原文链接:http://www.orlion.ga/731/ php用clone复制对象有一个问题,下面用代码来说明问题: 输出是: 输出说明了一个问题:$cloneFoo->bar->name = 'new bar obj';这句话本意是想把$cloneFoo中的$bar的name修改了。但是却顺 阅读全文
摘要:
原文链接:http://www.orlion.ga/689/ 好久之前就知道有这么个东西,但是一直没用,一直用exit()、var_dump() debug,效率很低。 首先下载xdebug的dll文件(Window环境下)网址是:https://xdebug.org/download.php,此次 阅读全文
摘要:
原文链接:http://www.orlion.ga/1250/ 一、线程 同一进程的多个线程共享同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在个线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,个线程还共享一下进程资源和环 阅读全文
摘要:
原文链接:http://www.orlion.ga/1227/ 一、概念 unix系统中用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制端。控制终端是保存在PCB中的信息,而fork会复制PCB中的信息,因此Shell进程启动的其他进程的控制终端也是这个终端。默认情况下 阅读全文
摘要:
原文链接:http://www.orlion.ga/1126/ 一、阻塞信号 1、信号在内核中的表示 实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保存在未决状态,直到进 阅读全文
摘要:
原文链接:http://www.orlion.ga/1122/ 一、信号的概念 一个熟悉的场景: 用户输入命令,在Shell下启动一个前台进程 用户按下Ctrl-C,键盘输入产生一个硬件中断 如果CPU正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从 用户态切换到内核态处理硬件中断 阅读全文
摘要:
原文链接:http://www.orlion.ga/1072/ 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区中把数据读走,内核提供的这种机制称为进程 阅读全文
摘要:
原文链接:http://www.orlion.ga/1044/ 一、fork函数 #include <sys/types.h> #include <unistd.h> pid_t fork(void); fork调用失败返回-1。下面通过一个例子来理解fork是怎样创建进程的。 输出 fork-ww 阅读全文
摘要:
原文链接:http://www.orlion.ga/1015/ 一、进程 每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,linux内核的进程控制块是task_struct结构体,其中有: 进程id。系统中每个进程有一个唯一的id,在C语言中用pid_t类型表示,是一个非负正是 进 阅读全文
摘要:
原文链接:http://www.orlion.ga/977/ 一、数值字符串转换函数 atoi把一个字符串开头可以识别成十进制整数的部分转换成int型,例如atoi(" -123abc")返回-123(字符串开头可以有空格)。如果字符串开头没有可识别的整数返回0,而atoi("0abc")也返回0。 阅读全文