08 2016 档案
摘要:一、线程属性 可以使用pthread_attr_t结构修改线程默认属性,并这些属性和创建的线程练习起来,可以使用pthread_att_init函数初始化pthread_attr_t结构,调用pthread_attr_init后,pthread_attr_t结构所包含的就是操作系统实现支持的所有线程
阅读全文
摘要:getopt和getoptlong被用来解析命令行参数。 一、getopt #include <unistd.h> extern char *optarg; extern int optind, extern int opterr, extern int optopt; int getopt(int
阅读全文
摘要:为了保证临界资源的安全性和可靠性,线程不得不使用锁,同一时间只允许一个或几个线程访问变量。常用的锁有互斥量,读写锁,条件变量 一、互斥量 互斥量是用pthread_mutex_t数据类型表示的,在使用之前,必须对其进行初始化,可以把它设置为PTHREAD_MUTEX_INITIALIZER(只适于静
阅读全文
摘要:一、线程标识 和每个进程都有一个进程ID一样,每个线程也有一个线程ID,线程ID是以pthread_t数据类型来表示的,在Linux中,用无符号长整型表示pthread_t,Solaris 把phread_t数据类型表示为无符号整型,FreeBSD 和Mac OS X 用一个指向pthread结构的
阅读全文
摘要:设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky set-user-ID: SUID 当文件的该位有设置时,表示当该文件被执行时,程序具有文件所有者的权限而不是执行者的权限。 这样说有点绕,举个例子就是说passwd这个命令,它的所有者是root,并且它的
阅读全文
摘要:当UNIX函数发生错误时,通常会返回一个负值,而且整形变量errno通常被设置为具有特定信息的值。 errno是全局变量,仅当函数出错才有被改变。对待errno,应注意两条规则 1:如果没有出错,其值不会被例程清除,也就是说,当且仅当函数出错时,马上检查errno的值才有意义。 2:任何函数都不会将
阅读全文
摘要:int mydup2(int oldfd, int newfd) { int tfd = 0; if (newfd < 0) { err_sys("newfd < 0"); } if (newfd == oldfd) { return oldfd; } while(1) { tfd = dup(ol
阅读全文

浙公网安备 33010602011771号