分类: LINUX
2011-04-28 17:16:27
预编译器内置宏:
__FILE__: 文件名 __FUNCTION__:函数名 __LINE__:行数 __ TIME__:时间
程序调试时在适当的位置加入这些提示,对定位错误很又帮助。
2、
进程、程序、线程
进程与程序:
进程是一个动态的实体,是程序的一次执行过程。
进程与程序的区别在于进程是动态的,程序是静态的;进程是运行中的程序,程序是一些保存在硬盘上的可执行的代码。
线程是进程为了让计算机在同一时间内能执行更多任务而在其内部创建的,它是比进程更小的能独立运行的基本单位。进程在执行过程中拥有独立的内存单元,其内部的线程共享这些内存。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程可以并行执行。
3、 进程状态:
在终端执行命令:
ps -eo pid,stat
显示: PID STAT
1 S
2 SN
3 S<
120 S
2628 Ss
2816 Ssl
2857 SLs
2949 Sl
3285 Ss+
8430 S+
9352 R+
在运行结果中:R(runnable)运行状态 ,S(sleeping)可中断等待状态,D(uninterruptible sleep)不可中断等待状态,Z(zombile)僵死状态,T(traced or stopped)停止状态。
另外,还有一些后缀符,其意义分别为:<(高优先级进程),N(低优先级进程),L(内存锁页,即页不可以被换出内存),s(该进程为会话首进程),l(多线程进程),+(进程位于前台进程组)。例如,Ssl说明该进程处于可中断 等待状态,且该进程为会话首进程,而且是一个多线程的进程。
4、
子进程 与父进程 间的继承关系:
子进程会继承父进程的很多属性,主要包括用户ID、组ID、当前工作目录、根目录、打开的文件、创建文件时使用的屏蔽字、信号屏蔽字、上下文环境、共享的存储段、资源限制等。
子进程与父进程有一些不同的属性,主要有如下这些。
* 子进程有它自己唯一的进程ID。
* fork的返回值不同,父进程返回子进程的ID,子进程的则为0.
* 不同的父进程ID。子进程的父进程ID为创建它的父进程ID。
* 子进程共享父