上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 59 下一页
摘要: 有8种方式使进程终止(termination),其中5种为正常终止,它们是:(1)从main返回。(2)调用exit。(3)调用_exit或_Exit。(4)最后一个线程从其启动例程返回。(5)最后一个线程调用pthread_exit。异常终止有3种方式,它们是:(6)调用abort。(7)接到一个信号并终止。(8)最后一个线程对取消请求作出响应。启动例程是这样编写的,使得从main返回后立即调用exit函数。(关于启动例程:http://learn.akae.cn/media/ch19s02.html)。如果将启动例程以C代码形式表示(实际上该例程常常用汇编语言编写),则它调用main函数的 阅读全文
posted @ 2014-01-06 21:45 ITtecman 阅读(881) 评论(0) 推荐(0) 编辑
摘要: C程序总是从main函数开始执行。main函数的原型是:int main( int argc, char *argv[] );其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设置的,而连接编辑器则由C编译器(通常是cc)调用。启动例程从内核取得命令行参数和环境变量值,然后为按上述方式调用main函数做好安排。本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www 阅读全文
posted @ 2014-01-06 19:24 ITtecman 阅读(795) 评论(0) 推荐(0) 编辑
摘要: 由UNIX内核提供的基本时间服务是计算自国际标准时间公元1970年1月1日00:00:00以来经过的秒数。这种秒数是以数据类型time_t表示的。我们称它们为日历时间。日历时间包括时间和日期。UNIX在这方面与其他操作系统的区别是:(a)以国际标准时间而非本地时间计时;(b)可自动进行转换,例如变换到夏时制;(c)将时间和日期作为一个量值保存。time函数返回当前时间和日期:#include time_t time( time_t *calptr );返回值:若成功则返回时间值,若出错则返回-1时间值总是作为函数值返回。如果参数不为空,则时间值也存放在由calptr指向的单元内。在系统V派生的 阅读全文
posted @ 2014-01-06 18:21 ITtecman 阅读(694) 评论(0) 推荐(0) 编辑
摘要: POSIX.1定义了uname函数,它返回与当前主机和操作系统有关的信息。 #include int uname( struct utsname *name );返回值:若成功则返回非负值,若出错则返回-1通过该函数的参数向其传递一个utsname结构的地址,然后该函数填写此结构。POSIX.1只定义了该结构中至少需要提供的字段(它们都是字符数组),而每个数组的长度则由实现确定。某些实现在... 阅读全文
posted @ 2014-01-06 17:12 ITtecman 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 大多数UNIX系统都提供下列两个数据文件:utmp文件,它记录当前登录进系统的各个用户;wtmp文件,它跟踪各个登录和注销事件。在V7中,每次写入这两个文件中的是包含下列结构的一条二进制记录: struct utmp { char ut_line[8]; /* tty line: "ttyh0", "ttyd0", "ttyp0", ... */ char ut_name... 阅读全文
posted @ 2014-01-06 16:48 ITtecman 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 在日常操作中,UNIX系统还使用很多其他文件。例如,BSD网络软件有一个记录各网络服务器所提供服务的数据文件(/etc/services),有一个记录协议信息的数据文件(/etc/protocols),还有一个则是记录网络信息的数据文件(/etc/networks)。 一般情况下,对于每个数据文件至少有三个函数: (1)get函数:读下一个记录,如果需要,还可以打开该文件。这些函数通常返回指向... 阅读全文
posted @ 2014-01-06 16:37 ITtecman 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 4.2BSD引入了附加组ID(supplementary group ID)的概念。我们不仅可以属于口令文件记录项中组ID所对应的组,也可属于多达16个另外的组。文件访问权限检查相应被修改为:不仅将进程的有效组ID与文件的组ID相比较,而且也将所有附加组ID与文件的组ID进行比较。 常量NGROUPS_MAX规定了附加组ID的数量,其常用值是16. 使用附加组ID的优点是不必再显式地经常更改组... 阅读全文
posted @ 2014-01-06 16:20 ITtecman 阅读(732) 评论(0) 推荐(0) 编辑
摘要: UNIX组文件(POSIX.1称其为组数据库)包含了表6-3中所示的字段。这些字段包含在中所定义的group结构中。 表6-3 /etc/group文件中的字段 字段gr_mem是一个指针数组,其中每个指针各指向一个属于该组的用户名。该数组以空指针结尾。 可以用下列... 阅读全文
posted @ 2014-01-06 15:53 ITtecman 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 加密口令是经单向加密算法处理过的用户口令副本。因为此算法是单向的,所以不能从加密口令猜测到原来的口令。 历史上使用的算法总是从64字符集中产生13个可打印字符。某些较新的系统使用MD5算法对口令加密,为每个加密口令产生31个字符。 给出一个加密口令,找不到一种算法可以将其逆转到普通文本口令(普通文本口令是在Password:提示符后键入的口令)。但是可以对口令进行猜测,将猜测的口令经单向算法变... 阅读全文
posted @ 2014-01-06 11:18 ITtecman 阅读(560) 评论(0) 推荐(0) 编辑
摘要: UNIX系统的口令文件(POSIX.1则将其称为用户数据库)包含了表6-1中所示的各字段,这些字段包含在中定义的passwd结构中。注意,POSIX.1只指定了passwd结构包含的10个字段中的5个。大多数平台至少支持其中7个字段。 表6-1 /etc/passwd文件中的字段由于历史原因,口令文件存储在/etc/passwd中,而且是一个ASCII文件。每一行包含6-1中所示的各字段,字段之间用冒号分隔。例如,在Linux上,该文件中可能有下列四行:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x 阅读全文
posted @ 2014-01-06 10:57 ITtecman 阅读(552) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 59 下一页