
linux开发
文章平均质量分 79
ssosun
这个作者很懒,什么都没留下…
展开
-
会话和进程组(转载)
由于 Linux 是一个多用户系统,同一时刻,系统中运行有属于不同用户的多个进程。那么,当处于某个终端上的用户按下了 Ctrl+C 键时(产生 SIGINT 信号),系统如何知道将该信号发送到哪个进程,从而不影响由其他终端上的用户运行的进程呢?Linux 内核通过维护会话和进程组而管理多用户进程。如图 11-3 所示,每个进程是一个进程组的成员,而每个进程组又是某个会话的成员。一般而言,当用户在某个终端上登录时,一个新的会话就开始了。进程组由组中的领头进程标识,领头进程的进程标识符就是进程组的组标识符。类似转载 2011-01-09 06:30:00 · 606 阅读 · 0 评论 -
创建守护进程(转载)
Linux编程技术详解-创建守护进程由于守护进程的特点,编写守护进程程序必须遵守一定的规则。本节将阐述这些规则的要点,并给出相关代码。8.2.1 实现守护进程的步骤在Linux系统中,要编程实现一个守护进程必须遵守如下的步骤。1.让init进程成为新产生进程的父进程。调用fork函数创建子进程后,使父进程立即退出。这样,产生的子进程将变成孤儿进程,并被init进程接管,同时,所产生的新进程将变为在后台运行。2.调用setsid函数通过调用setsid函数,使得新创建的进程脱离控制终端,同时创建新的进程组,转载 2011-01-09 07:29:00 · 597 阅读 · 0 评论 -
加锁的各种选择
inux 内核提供了不少有力的加锁原语能够用来使内核避免被自己绊倒. 但是, 如同我们已见到的, 一个加锁机制的设计和实现不是没有缺陷. 常常对于旗标和自旋锁没有选择; 它们可能是唯一的方法来正确地完成工作. 然而, 有些情况, 可以建立原子的存取而不用完整的加锁. 本节看一下做事情的其他方法. 5.7.1. 不加锁算法有时, 你可以重新打造你的算法来完全避免加锁的需要. 许多读者/写者情况 -- 如果只有一个写者 -- 常常能够在这个方式下工作. 如果写者小心使数据结构的视图, 由读者所见的, 是一直一致转载 2011-01-08 21:01:00 · 490 阅读 · 0 评论 -
elf文件格式与动态链接库(转载)
机器执行的是机器指令,而机器指令就是一堆二进制的数字。高级语言编写的程序之所以可以在不同的机器上移植就因为有为不同机器设计的编译器的存在。高级语言的编译器就是把高级语言写的程序转换成某个机器能直接执行的二进制代码。以上的知识在我们学习CS(Computer Science)的初期,老师都会这么对我们讲。但是我就产生疑问了:既然机器都是执行的二进制代码,那么是不是说只要硬件相互兼容,不同操作系统下的可执行文件可以互相运行呢?答案肯定是不行。这就要谈到可执行文件的格式问题。每个操作系统都会有自己的可执行文件的格转载 2011-01-10 13:01:00 · 420 阅读 · 0 评论 -
linux开发网站
<br />多线程信号:http://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/?S_TACT=105AGX52&S_CMP=tec-csdn<br />信号与阻塞:http://www.360doc.com/content/11/0113/11/1317564_86178542.shtml<br />多线程信号量:http://hi.baidu.com/hpagent/blog/item/f45cc51dc784ca6ff624e4d3.html原创 2011-01-14 20:13:00 · 354 阅读 · 0 评论 -
gcc attribute 机制(转载)
<br />GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。<br />__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。<br />__attribute__语法格式为:<br />__attrib转载 2011-01-15 21:03:00 · 342 阅读 · 0 评论 -
Linux的时间函数(转载)
<br />一、时间相关说明<br />格林威治时间表示0时区的标准时间。其他时区的时间和此标准时间均有时间差。UTC(Universal Time Coordinated)是世界协调时间,是格林威治时间在互联网中的表示方法<br />二、标准C语言时间函数<br />1、time(取得本地目前的时间秒数)<br />#include<time.h><br />time_t time(time_t *t);<br /> <br />函数说明 此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒(转载 2011-02-16 15:29:00 · 2174 阅读 · 0 评论 -
socket选项
<br />socket选项<br /> <br />1、设置/获取socket选项<br />有两个函数,可以用来对socket进行设置或获取当前设置:<br />#include <sys/socket.h><br /><br />int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);<br /> <br />int setsockopt(int sockfd, int level, in转载 2011-02-23 16:37:00 · 1213 阅读 · 0 评论