UNIX 编程实践教程学习笔记 (三)

来源:互联网 发布:手机自动抢购软件 编辑:程序博客网 时间:2024/05/29 19:32

1.

 

内在提供计时器来计量这3 种类型的时间. 3 类计时器的名字和功能如下。
(1 ) ITIMER_REAL
这个计时器计量真实时间.如同手表记录时间 . 也就是且不管理序在用户态还是核心态
用了多少处理器时间它都记录。 当这个计时器用尽。发送SIGALRM 消息
(2) ITIMER_VIRTUAL
这个计时器就像美式橄榄球中用的计时方法,只有进程在用户态运行时才计时. 虚拟
计时器(virtual timer) 的30s,比实际计时器(real timer)的30s要长. 当虚拟计时器用尽,发送矗SIGVTALRM消息。
(3) ITIMER_PROF
这个计时器在进程运行于用户态或由该进程调用而陷入核心态时计时. 当这个计时器
用尽,发送SIGPROF消息。

2.

 

靠,scanf还有这用法,真是菜菜菜,sscanf同scanf

sscanf(message,"%d%[-+*/^]%d",&num1,operation,&num2)

 

注:%[]a set of characters

 If scanf() encounters a set of characters, denoted by the %[] control character, then any characters found within the brackets are read into the variable

 

3.CRNL

carriage return 回车

4.

在web应用中,比如HTTP协议规定的头格式,就是要求回城换行,就必须是/r/n,如果只写/n 就不能作为头结束的标志 

5.判断进程是否依然存在

服务器希望能回收已经不存在进程的票据. 那么如何判断进程是否还活着呢? 可以使
用popen 来运行ps, 然后从ps的输出中查找PID. 以确定持有票据的PID 是否存在. 另一
种快速简洁的方法是使用kill统调用的特殊功能.
可以通过给进程发送编号为o 的信号以确定它是否存在. 如果进程不存在,内核将不会
发送信号, 而是返回错误,并设置errno为ESRCH .

kill(ticket_array[i], 0) == -1) && (errno == ESRCH)

6.创建独立线程

 pthread_t t;
 pthread_attr_t attr_detached;

 pthread_attr_init(&attrp);
 pthread_attr_setdetachstate(&attrp_detached,PTHREAD_CREATE_DETACHED);

pthread_create(&t,&attr_detached,func,arg);

原创粉丝点击