linux open(), 标志位 O_TRUNC,这个标志位把文件内容清空和文件长度截断为:0
1.Linux 最大线程数
/proc/sys/kernel/pid_max
2. 线程栈大小(thread_info)8K。 (ulimit -a 查看)
一般默认情况下,线程栈是在进程的堆中分配栈空间,每个线程拥有独立的栈空间,为了避免线程之间的栈空间踩踏,线程栈之间还会有以小块guardsize用来隔离保护各自的栈空间,一旦另一个线程踏入到这个隔离区,就会引发段错误
3. 线程处理函数和宏
3.1 双向链表创建采用宏定义方式。 LIST_HEAD(list_name), 初始化了list_head 数据结构的prev和next字段,指向自己本身
3.2 双向链表的添加 list_add(n,p),把n指向的元素插入p所指向的特定元素之后
3.3 双向链表的添加 list_add_tail(n,p) 把n指向的元素插到p所指向的特定元素之前
3.4 删除元素 list_del(p) 删除p 所指向的元素
3.5 检测链表是否为空 list_empty(p) 检查有第一个元素的地址p 指定的链表是否为空
3.6 链表扫描遍历 list_for_each(p,h) 对表头地址h 指定的链表进行扫描,在每次循环时,通过P 返回指向链表元素的 list_head 结构的指针
3.7
将打印信息输入到屏幕,同时保存文件中
./a.out |tee log.txt