E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Unix环境高级编程
Unix环境高级编程
笔记:11、线程
1、线程概念 线程包含了表示进程内执行环境必须的信息,其中包括进程中标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。 2、线程标识 线程ID用pthread_t数据类型表示 必须使用函数对二个线程ID进行比较 #inc
活的很快乐
·
2013-11-19 08:00
《
UNIX环境高级编程
》笔记--更改用户ID和组ID
在unix系统中,特权是基于用户和组ID的,当程序需要增加特权,或需要访问当前并不允许访问的资源时,我们需要更换自己用户ID或组ID,使的新ID具有合适的特权或访问权限。与此类似,当程序需要降低其特权或阻止对某些资源的访问时,也需要更换用户ID或组ID,从而使新ID不具有相应特权或访问这些资源的能力。可以用setuid函数设置实际用户ID和有效ID,与此类似,可以使用setgid函数设置实际组ID
TODD911
·
2013-11-17 17:00
《
UNIX环境高级编程
》笔记--exec系列函数
使用fork函数创建子进程后,子进程往往都要调用一种exec函数以执行另一个程序,当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,新程序从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈。有6种不同的exec函数可以使用,它们通常被统称为exec函数。#inlcude intexecl
TODD911
·
2013-11-17 16:00
Unix环境高级编程
笔记:11、线程
阅读更多1、线程概念线程包含了表示进程内执行环境必须的信息,其中包括进程中标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。2、线程标识线程ID用pthread_t数据类型表示必须使用函数对二个线程ID进行比较#includeintpthre
oolala
·
2013-11-15 11:00
thread
unix
linux
Unix环境高级编程
笔记:11、线程
1、线程概念 线程包含了表示进程内执行环境必须的信息,其中包括进程中标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。 2、线程
oolala
·
2013-11-15 11:00
thread
linux
unix
Unix环境高级编程
笔记 :10、信号
信号是软件中断,信号提供了一种处理异步事件的方法。1、信号概念 每个信号都有一个名字,这些名字都以三个字符SIG开头。 SIGABRT是夭折信号,当进程调用abort函数时产生这种信号 SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号。 在头中,这些信号都被定义为正整数(信号编号). 很多条件可以产生信号: a)当用户按某些终端键时,引发终端产生信号
活的很快乐
·
2013-11-15 11:00
Unix环境高级编程
笔记:9、进程关系
1、进程组 #include pid_tgetpgrp(void); 返回值:调用进程的进程组ID 每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID 组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。 #include intsetpgid(pid_tpid,pid
活的很快乐
·
2013-11-15 11:00
Unix环境高级编程
笔记:10、信号
信号是软件中断,信号提供了一种处理异步事件的方法。 1、信号概念 每个信号都有一个名字,这些名字都以三个字符SIG开头。 SIGABRT是夭折信号,当进程调用abort函数时产生这种信号 SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号。
oolala
·
2013-11-14 09:00
Unix环境高级编程
Unix环境高级编程
笔记:10、信号
阅读更多信号是软件中断,信号提供了一种处理异步事件的方法。1、信号概念每个信号都有一个名字,这些名字都以三个字符SIG开头。SIGABRT是夭折信号,当进程调用abort函数时产生这种信号SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号。在头中,这些信号都被定义为正整数(信号编号).很多条件可以产生信号:a)当用户按某些终端键时,引发终端产生信号ctrl+c产生中断信号(S
oolala
·
2013-11-14 09:00
Unix环境高级编程
Unix环境高级编程
笔记:10、信号
阅读更多信号是软件中断,信号提供了一种处理异步事件的方法。1、信号概念每个信号都有一个名字,这些名字都以三个字符SIG开头。SIGABRT是夭折信号,当进程调用abort函数时产生这种信号SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号。在头中,这些信号都被定义为正整数(信号编号).很多条件可以产生信号:a)当用户按某些终端键时,引发终端产生信号ctrl+c产生中断信号(S
oolala
·
2013-11-14 09:00
Unix环境高级编程
《
UNIX环境高级编程
》笔记--进程的终止
进程有五种正常终止方式:1.在main函数内执行return语句。这等效于调用exit。2.调用exit函数。此函数有ISOC定义,其操作包括调用各种终止处理程序(由atexit函数登记),然后关闭所有的标准IO流等。3.调用_exit或者_Exit函数。ISOC定义_Exit,其目的是为进程提供一种无需运行终止处理程序或信号处理程序而终止的方法。在UNIX系统中,_Exit和_exit是同义的,
TODD911
·
2013-11-12 20:00
安全且平台兼容的进程互斥锁
1、文件记录锁UNIX编程的“圣经”《
Unix环境高级编程
》中有对文件记录锁的详细描述。
educast
·
2013-11-12 17:00
Unix环境高级编程
笔记:9、进程关系
阅读更多1、进程组#includepid_tgetpgrp(void);返回值:调用进程的进程组ID每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。#includeintsetpgid(pid_tpid,pid_tpgid);setpg
oolala
·
2013-11-12 09:00
Unix环境高级编程
笔记:9、进程关系
1、进程组 #include <unistd.h> pid_t getpgrp(void); 返回值:调用进程的进程组ID 每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID  
oolala
·
2013-11-12 09:00
unix
Unix环境高级编程
笔记:9、进程关系
阅读更多1、进程组#includepid_tgetpgrp(void);返回值:调用进程的进程组ID每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。#includeintsetpgid(pid_tpid,pid_tpgid);setpg
oolala
·
2013-11-12 09:00
Linux下使用daemon函数编写后台程序
以前我们在看《
unix环境高级编程
》的时候,有专门的整章详细介绍如何编写一个后台daemon程序(精灵程序),主要涉及到创建会话组,切换工作目录,设置文件屏蔽字,关闭不必要的描述符等多个操作。
sdgaojian
·
2013-11-11 22:00
《
UNIX环境高级编程
》笔记--wait系列函数
1.wait函数和waitpid函数当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件,所以这种信号也是内核向父进程发的异步通知。父进程可以选择忽略信号,或者提供一个该信号的处理函数,对于这种信号默认动作是忽略它。调用wait或waitpid的进程可能会发生什么情况:如果其所有子进程都在运行,则阻塞。如果一个子进程已经终止,正等待父进程获取其终止状态,则
TODD911
·
2013-11-11 21:00
《
UNIX环境高级编程
》笔记--fork系列函数
1.fork函数一个现有的进程可以调用fork函数创建一个新的子进程。#include pid_tfork(void);//子进程返回0,父进程返回子进程ID,出错返回-1。关于fork函数的常规用法这边不说了,下面说明下父子进程的文件共享。子进程是父进程的副本,例如,子进程获得父进程数据空间、栈和堆的副本,这是子进程所拥有的副本,父子进程并不共享这些存储空间部分。由于在fork之后经常跟随着ex
TODD911
·
2013-11-10 15:00
unix环境高级编程
学习1-unix文件和目录
root的名字是字符/。创建新目录时会自动创建两个文件名:.(目录)和..(父目录)下面开始写第一个unix程序。说明一下,表示不想折腾电脑了,之前装了cygwin64可以模拟unix环境,安装了gcc,g++,代码在dev-c++下写:#include #include #include"stdlib.h" #include"stdio.h" intmain(intargc,char*argv
boyhailong
·
2013-11-08 21:00
UNIX环境高级编程
推荐
UNIX环境高级编程
作者: W.RichardStevens / StephenA.Rago 出版社: 人民邮电出版社副标题: 第2版译者: 尤晋元 / 张亚英 / 戚正伟 出版年: 2006年页数:
活的很快乐
·
2013-11-08 11:00
Unix环境高级编程
笔记:8、进程控制
1、进程标识符 每个进程都有一个非负整型表示的唯一进程ID。 ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。 ID为1通常是init进程,在自举过程结束时由内核调用。该进程文件在/etc/init #include gid_tgetegid(void);获取有效用户ID uid_tgeteuid(void); git_tgetgid(void); uid_
活的很快乐
·
2013-11-08 10:00
目录和目录项
在阅读《
UNIX环境高级编程
》时,对目录,目录项两个概念有点混淆,为此觉得有必要搞清楚这一点!
Q1302182594
·
2013-11-07 16:00
Unix环境高级编程
笔记:8、进程控制
阅读更多1、进程标识符每个进程都有一个非负整型表示的唯一进程ID。ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。ID为1通常是init进程,在自举过程结束时由内核调用。该进程文件在/etc/init#includegid_tgetegid(void);获取有效用户IDuid_tgeteuid(void);git_tgetgid(void);uid_tgetuid(void);
oolala
·
2013-11-06 17:00
Unix环境高级编程
笔记:8、进程控制
1、进程标识符 每个进程都有一个非负整型表示的唯一进程ID。 ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。 ID为1通常是init进程,在自举过程结束时由内核调用。该进程文件在/etc/init #include <
oolala
·
2013-11-06 17:00
unix
Unix环境高级编程
笔记:8、进程控制
阅读更多1、进程标识符每个进程都有一个非负整型表示的唯一进程ID。ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。ID为1通常是init进程,在自举过程结束时由内核调用。该进程文件在/etc/init#includegid_tgetegid(void);获取有效用户IDuid_tgeteuid(void);git_tgetgid(void);uid_tgetuid(void);
oolala
·
2013-11-06 17:00
《
UNIX环境高级编程
》笔记--getrlimit和setrlimit函数
每个进程都有一组资源限制,其中一些可以使用getrlimit和setrlimit函数进行查询和修改。#include intgetrlimit(intresource,structrlimit*rptr); intsetrlimit(intresource,conststructrlimit*rptr);两个函数返回值:如成功返回0,出错则返回非0值。进程的资源是在系统初始化时由进程0建立的,然后
TODD911
·
2013-11-02 18:00
《
UNIX环境高级编程
》笔记--环境变量
ISOC定义了一个函数getenv,可以用其取环境变量值。#include char*getenv(constchar*name);//返回与name关联的value的指针,若没有找到则返回NULL。除了取环境变量的值,有时也需要设置环境变量,但是不是所有的系统都支持,详细如下图:clearenv不是SUS的组成部分,它被用来删除环境表中的所有项。表中的三个函数原型是:#include intpu
TODD911
·
2013-10-31 21:00
UNIX环境高级编程
阅读更多
UNIX环境高级编程
作者:W.RichardStevens/StephenA.Rago出版社:人民邮电出版社副标题:第2版译者:尤晋元/张亚英/戚正伟出版年:2006年页数:780页定价:99.00
oolala
·
2013-10-31 14:00
UNIX环境高级编程
UNIX环境高级编程
作者: W.RichardStevens / StephenA.Rago 出版社: 人民邮电出版社副标题: 第2版译者: 尤晋元 / 张亚英 / 戚正伟 出版年: 2006年页数:
oolala
·
2013-10-31 14:00
unix
UNIX环境高级编程
阅读更多
UNIX环境高级编程
作者:W.RichardStevens/StephenA.Rago出版社:人民邮电出版社副标题:第2版译者:尤晋元/张亚英/戚正伟出版年:2006年页数:780页定价:99.00
oolala
·
2013-10-31 14:00
Unix环境高级编程
笔记 :7、进程环境
1、进程终止 a)进程终止的8种方式 从main返回 调用exit 调用_exit或_Exit 最后一个线程从其启动进程返回 最后一个线程调用pthread_exit 调用abort 接到一个信号并终止 最后一个线程对取消请求做出响应 b)exit函数 _exit和_Exit立即进入内核,exit则先执行一些清理处理(包括调用执行终止处理程序,关闭所有标准I
活的很快乐
·
2013-10-31 10:00
Unix环境高级编程
笔记:7、进程环境
阅读更多1、进程终止a)进程终止的8种方式从main返回调用exit调用_exit或_Exit最后一个线程从其启动进程返回最后一个线程调用pthread_exit调用abort接到一个信号并终止最后一个线程对取消请求做出响应b)exit函数_exit和_Exit立即进入内核,exit则先执行一些清理处理(包括调用执行终止处理程序,关闭所有标准IO流等)然后进入内核exit函数总是执行一个标准io库
oolala
·
2013-10-30 15:00
Unix环境高级编程
笔记:7、进程环境
1、进程终止 a)进程终止的8种方式 从main返回 调用exit 调用_exit或_Exit 最后一个线程从其启动进程返回 最后一个线程调用pthread
oolala
·
2013-10-30 15:00
unix
Unix环境高级编程
笔记:7、进程环境
阅读更多1、进程终止a)进程终止的8种方式从main返回调用exit调用_exit或_Exit最后一个线程从其启动进程返回最后一个线程调用pthread_exit调用abort接到一个信号并终止最后一个线程对取消请求做出响应b)exit函数_exit和_Exit立即进入内核,exit则先执行一些清理处理(包括调用执行终止处理程序,关闭所有标准IO流等)然后进入内核exit函数总是执行一个标准io库
oolala
·
2013-10-30 15:00
Unix环境高级编程
笔记 :5、标准IO库
1、fwide 设置流的定向 #include #include intfwide(FILE*fp,intmode); mode参数值为负,fwide试图使指定的流是字节 mode参数值为正,fwide将试图使指定的流是宽定向 mode参数值为0,fwide将不试图设置流的定向,返回标识该流的定向的值2、标准输入、标准输出、标准出错 对一个进程预定义了三个流,并且这三个流可以自动
活的很快乐
·
2013-10-30 11:00
Unix环境高级编程
笔记 :4、文件和目录
1、stat fstat lstat #include intstat(constchar*restrictpathname,structstat*restrictbuf); intfstat(intfiledes,structstat*buf); intlstat(constchar*restrictpathname,structstat*restrictbuf); str
活的很快乐
·
2013-10-30 11:00
Unix环境高级编程
笔记 :3、文件I/O
1、文件io需求5个函数 openreadwritelseekclose 这些函数被称为不带缓冲的IO,不带缓冲IO指的是每个read和write都调用内核中的系统调用 只要涉及多个进程间共享资源,原子操作的概念就变的非常重要。 dup、fcntl、sync、fsync、ioctl 2、文件描述符 文件描述符是一个非负整数,当打开一个现有的文件或创建一个新文件时,内核向进程返回一
活的很快乐
·
2013-10-30 11:00
Unix环境高级编程
笔记:5、标准IO库
阅读更多1、fwide设置流的定向#include#includeintfwide(FILE*fp,intmode);mode参数值为负,fwide试图使指定的流是字节mode参数值为正,fwide将试图使指定的流是宽定向mode参数值为0,fwide将不试图设置流的定向,返回标识该流的定向的值2、标准输入、标准输出、标准出错对一个进程预定义了三个流,并且这三个流可以自动被进程使用。标准输入、标准
oolala
·
2013-10-29 13:00
Unix环境高级编程
笔记:5、标准IO库
1、fwide 设置流的定向 #include <stdio.h> #include <wchar.h> int fwide(FILE *fp,int mode); mode参数值为负,fwide试图使指
oolala
·
2013-10-29 13:00
unix
Unix环境高级编程
笔记:5、标准IO库
阅读更多1、fwide设置流的定向#include#includeintfwide(FILE*fp,intmode);mode参数值为负,fwide试图使指定的流是字节mode参数值为正,fwide将试图使指定的流是宽定向mode参数值为0,fwide将不试图设置流的定向,返回标识该流的定向的值2、标准输入、标准输出、标准出错对一个进程预定义了三个流,并且这三个流可以自动被进程使用。标准输入、标准
oolala
·
2013-10-29 13:00
Unix环境高级编程
笔记:4、文件和目录
1、stat fstat lstat #include <sys/stat.h> int stat(const char * restrict pathname,struct stat *restrict buf); int fstat(int filedes,s
oolala
·
2013-10-29 10:00
unix
Unix环境高级编程
笔记:4、文件和目录
阅读更多1、statfstatlstat#includeintstat(constchar*restrictpathname,structstat*restrictbuf);intfstat(intfiledes,structstat*buf);intlstat(constchar*restrictpathname,structstat*restrictbuf);structstat{dev_ts
oolala
·
2013-10-29 10:00
Unix环境高级编程
笔记:4、文件和目录
阅读更多1、statfstatlstat#includeintstat(constchar*restrictpathname,structstat*restrictbuf);intfstat(intfiledes,structstat*buf);intlstat(constchar*restrictpathname,structstat*restrictbuf);structstat{dev_ts
oolala
·
2013-10-29 10:00
Unix环境高级编程
笔记:3、文件I/O
1、文件io需求5个函数 open read write lseek close 这些函数被称为不带缓冲的IO,不带缓冲IO指的是每个read和write都调用内核中的系统调用 只要涉及多个进程间共享资源,原子操作的概念就变的非常重要。  
oolala
·
2013-10-29 10:00
unix
Unix环境高级编程
笔记:3、文件I/O
阅读更多1、文件io需求5个函数openreadwritelseekclose这些函数被称为不带缓冲的IO,不带缓冲IO指的是每个read和write都调用内核中的系统调用只要涉及多个进程间共享资源,原子操作的概念就变的非常重要。dup、fcntl、sync、fsync、ioctl2、文件描述符文件描述符是一个非负整数,当打开一个现有的文件或创建一个新文件时,内核向进程返回一个文件描述符。0标准输
oolala
·
2013-10-29 10:00
Unix环境高级编程
笔记:3、文件I/O
阅读更多1、文件io需求5个函数openreadwritelseekclose这些函数被称为不带缓冲的IO,不带缓冲IO指的是每个read和write都调用内核中的系统调用只要涉及多个进程间共享资源,原子操作的概念就变的非常重要。dup、fcntl、sync、fsync、ioctl2、文件描述符文件描述符是一个非负整数,当打开一个现有的文件或创建一个新文件时,内核向进程返回一个文件描述符。0标准输
oolala
·
2013-10-29 10:00
《
UNIX环境高级编程
》笔记-时间和日期
由UNIX内核提供的基本时间服务是计算自国际标准时间公元1970年1月1日00:00:00以来经过的秒数,以time_t表示。以下2个函数返回当前时间。#include time_ttime(time_t*ptr);//成功则返回时间值,出错则返回-1.时间总是作为函数值返回,如果参数不为空,则时间值也存放在由ptr指向的单元内。如果要获取更高的分辨率(微秒级),可以使用gettimeofday函
TODD911
·
2013-10-28 11:00
《
UNIX环境高级编程
》笔记--系统标识
POSIX.1定义了uname函数,它返回与当前主机和操作系统有关的信息。#include intuname(structutsname*name);//如果成功返回非负值,出错则返回-1.utsname结构体的定义如下:structutsname{ charsysname[];//操作系统名称 charnodename[];//当前节点名称 charrelease[];//当前操作系统relea
TODD911
·
2013-10-26 17:00
《
UNIX环境高级编程
》笔记--口令文件,阴影文件,组文件,附加组ID,其他数据文件
1.口令文件UNIX系统的口令文件(/etc/passwd)包含如下个字段,这些字段包含在中定义的passwd文件中。POSIX只定义了两个获取口令文件项的函数,在给出用户登录名或者数值用户ID后,这两个函数就能查询相关项。#include structpasswd*getpwuid(uid_tuid); structpasswd*getpwnam(constchar*name);两个函数返回值,
TODD911
·
2013-10-26 15:00
UNIX环境高级编程
:Stephen Rago访谈
《
UNIX环境高级编程
》(AdvancedProgrammingintheUNIXEnvironment,APUE)被誉为基于UNIX的编程环境的圣经。
Jeff Martin
·
2013-10-23 00:00
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他