unix环境高级编程
文章平均质量分 80
码农自来也
这个作者很懒,什么都没留下…
展开
-
UNIX环境高级编程读书笔记(一)—文件IO (2)
5.名称:write目标: 将内存中的数据写入文件。头文件:#include 函数原形:size_t write(int fd, const void *buf, size_t count)参数: fd 文件描述符 buf 内存数据转载 2008-08-06 17:12:00 · 676 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十)—信号 (2)
二、不可靠信号安装和发送函数。1.名称::signal功能:信号安装(设置信号关联动作)头文件:#include 函数原形:typedef void (*sighandler_t)(int);sighandler_t signal(int signum,sighandler_t handl转载 2008-08-19 19:19:00 · 1836 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十)—信号 (3)
4.名称::alarm功能:set an alarm clock for delivery of a signal头文件:#include 函数原形:unsigned int alarm(unsigned int seconds);参数:seconds 时间返回值:转载 2008-08-19 19:22:00 · 854 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十二)—高级IO (1)
一.记录锁1.记录锁的功能 当一个进程正在读或修改文件的某个部分时,它可以阻止其他进程修改同一文件区。我们不应该从字面上去理解记录锁,实际上它应该叫“区域锁”,因为它锁定的只是文件的一个(也可能是整个文件)。这个区域用来存放多用户的共享区。2.记录锁的分类 记录锁分为共享读锁和独占写锁,前者也叫做共享锁后者也叫做排他锁。3.加锁规则转载 2008-08-19 19:31:00 · 855 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十二)—高级IO (2)
二.I/O多路转接 如果我们想从多个文件描述符读或写数据,如果我们用以前学过的函数(read,write等)去处理可能会阻塞在一个文件描述符上,不能处理其他的文件描述符。那是因为我们以前学的I/O处理函数,都是阻塞的I/O处理函数,它们的特点是,如果缓冲区里有数据它们就会把数据写到文件中,如果缓存区没有数据他们就会等待(阻塞)直到有数据可读。这就造成了他们无法对多个文件描转载 2008-08-19 19:32:00 · 689 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(六)—时间和日期 (2)
4.名称::gmtime/localtime功能:transform date and time头文件:#include 函数原形: struct tm *gmtime(const time_t *calptr)struct tm *locatltime(const time_t calptr);转载 2008-08-19 19:02:00 · 996 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(八)—进程控制 (1)
一、进程ID1.名称::getpid功能:获得进程id. 头文件:#include 函数原形: pid_t getpid(void);参数:无返回值:进程id. 每个进程都有一个非负整数表示的唯一进程转载 2008-08-19 19:14:00 · 974 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(八)—进程控制 (2)
6.名称::vfork功能:创建一个进程头文件:#include #include 函数原形: pid_t vfork(void);参数:无返回值:进程id. vfork与fork一样都创建一个进程,但转载 2008-08-19 19:15:00 · 1092 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十一)—终端IO (2)
UNIX环境高级编程读书笔记(十一)—终端IO (2) 字段标志说明c_cflagCCTS_OFLOW输出的CTS流控制 CIGNORE忽略控制标志 CLOAL忽略调制解调器状态行 CREAD转载 2008-08-19 19:30:00 · 1138 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十二)—高级IO (4)
四、存储映射I/O 存储映射I/O使一个磁盘文件与存储空间中的一个缓冲区相映射。于是当从缓冲区中取数据,就相当于读文件中的相应字节。与此类似,将数据存入缓冲区,则相应字节自动地写入文件。这样就可以在不使用read和write的情况下执行I/O。 6.名称::mmap功能:把I/O文件映射到一个存储区域中头转载 2008-08-19 19:35:00 · 946 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十三)—守护进程
守护进程也称精灵进程是生存期长的一种进程,它们常常在系统引导装入时启动,在系统管比时终止。精灵进程没有控制终端,所以它们是在后台运行的。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 所有精灵进程都以超转载 2008-08-19 19:37:00 · 672 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(二)—目录和文件 (4)
13.名称:umask目标: 为进程文件方式创建屏蔽字头文件:#include #include 函数原形:mode_t umask(mode_t cmask);参数: cmask返回值: 以前的文件方式创建屏蔽字umask函数为进程设置文件方式创建屏蔽字,并转载 2008-08-19 18:53:00 · 785 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(四)—出错处理
1.名称::perror功能:该函数在stderr流中输出错误信息头文件:#include 函数原形: void perror(const char *message)参数:message 返回值:无 如果调用perror是使用的转载 2008-08-19 18:56:00 · 697 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十)—信号(1)
1、信号本质与来源信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功转载 2008-08-19 19:18:00 · 929 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十二)—高级IO (3)
4.名称::pselect功能:指行I/O多路转接 头文件:#include 函数原形:int pselect(int masfdp1,fd_set *restrict readfds,fd_set *restrict writefds,fd_set excepfds,const struct tim转载 2008-08-19 19:33:00 · 734 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(八)—进程控制 (3)
四、执行新程序9.名称::exec功能:执行一个新程序头文件:#include 函数原形: int execl(const char *path,const char *arg,…);int execlp(const char *file,const char *arg,…);int ex转载 2008-08-19 19:16:00 · 757 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(七)—进程环境 (3)
8. 名称::unstenv功能:删除环境变量头文件:#include 函数原形: void unstenv(const char *name);参数:name 变量名返回值:无 unsetenv删除name的定义转载 2008-08-19 19:10:00 · 805 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(二)—目录和文件 (2)
四、文件的链接6.名称:link目标: 创建一个文件的新链接头文件:#include 函数原形:int link(const char *oldpath,const char *newpath);参数: oldpath 原始链接名称newpath 新建链接名称转载 2008-08-06 17:17:00 · 519 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(二)—目录和文件(1)
一、目录的打开和关闭 1. 名称:opendir目标: 打开一个目录。头文件:#include #include 函数原形:DIR *opendir(const char *name)参数: name 目录名返回值: NULL 遇到错误转载 2008-08-06 17:14:00 · 693 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(一)—文件IO (1)
一、打开/关闭文件1 名称:open目标: 打开一个文件。头文件:#include #include #include 函数原形:int open(const char * pathname,int flags);int open(const char * pathname,int fl转载 2008-08-06 17:04:00 · 908 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(五)—系统文件和信息 (2)
二、ect/group文件4.名称::getgrgid/getgrnam功能:get group file entry头文件:#include #include 函数原形: struct group *getgrnam(const char *name);struct group *get转载 2008-08-19 18:58:00 · 753 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(五)—系统文件和信息 (1)
一、etc/passwd文件 1.名称::getpwuid/getpwnam功能:Getpassword file entry头文件:#include 函数原形: struct passwd *getpwuid(uid_t uid);struct passwd *getpwnam(const c转载 2008-08-19 18:59:00 · 745 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(六)—时间和日期 (1)
一.文件的时间对每个文件保存三个时间字段,它们是: 1.名称::utime功能:修改文件的存取和修改时间头文件:#include #include 函数原形: int utime(const char *filename,const struct utimbuf buf);转载 2008-08-19 19:00:00 · 685 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(七)—进程环境 (1)
一、主要内容:1.进程如何启动和退出的(main函数,初启函数,exit函数,atexit函数)。(1).Linux创建进程的唯一方法就是利用shell的fork系统调用。(2).编译C程序时,连接器会将初启函数和main函数一起装入内存形成可执行文件,指定该初起函数为该初启函数的开始执行点。(3).初启函数负责从UNIX SHELL获得命令行参数和系统的环境变量,将它们组织成ma转载 2008-08-19 19:05:00 · 911 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(九)—进程关系 (1)
一、进程组1.名称::getpgrp功能:得到进程的进程组id头文件:#include 函数原形:pid_t getpgrp(void);参数:无返回值:调用进程的进程组ID 进程组是一个或多个进程的转载 2008-08-19 19:12:00 · 1029 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(九)—进程关系 (2)
二、会话4.名称::setsid功能:建立一个会话头文件:#include 函数原形:pid_t setsid(void);参数:无返回值:若成功则返回进程组ID,若出错则返回-1。 会话是一个或多转载 2008-08-19 19:13:00 · 784 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十)—信号 (4)
四、信号屏蔽字:有时候我们希望进程正确的执行,而不想进程受到信号的影响,比如我们希望上面那个程序在1秒钟之后不结束。这个时候我们就要进行信号的操作了。信号操作最常用的方法是信号屏蔽。信号屏蔽要用到下面的几个函数。sigemptyset,sigfillset,sigaddset,sigdelset,sigismember,sigprocmask。下面对他们分别进行讲解。 8转载 2008-08-19 19:23:00 · 1032 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十)—信号 (5)
11.名称::sigsuspend功能: 头文件:#include 函数原形:int sigsuspend(const sigset_t *sigmask);参数:sigmask 要替换的进程信号屏蔽字。返回值:-1,errno设置为EINTR.转载 2008-08-19 19:25:00 · 1296 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(十一)—终端IO (1)
1.什么是Linux的终端I/O,它分为几种类型。 终端是一种字符型设备,有多种类型,通常使用tty来简称各种类型的终端设备。终端特殊设备文件一般有以下几种: 串行端口终端(/dev/ttySn) ,伪终端(/dev/pty/),控制终端(/dev/tty) ,控制台终端(/dev/ttyn, /dev/console).1. 串行端口终端(Serial Port T转载 2008-08-19 19:28:00 · 1198 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(二)—目录和文件 (3)
六、文件的属性11名称:stat/fstat/lstat目标: 得到文件的属性。头文件:#include #include #include 函数原形:int stat(const char *file_name,struct stat *buf)int fstat(int filedes转载 2008-08-19 18:48:00 · 698 阅读 · 0 评论 -
UNIX环境高级编程读书笔记(七)—进程环境 (2)
四、进程空间3.名称::malloc/calloc/realloc/free功能:allocate and free dynamic memory头文件:#include 函数原形: void *calloc(size_t nmemb,size_t size);void *malloc(size_转载 2008-08-19 19:09:00 · 635 阅读 · 0 评论 -
同步和互斥
最近因为在学习多进程,所以不可避免得要接触进程的同步和互斥。对于以前学过的概念,因为太久没去复习已经有点生疏了,于是今天特意找了一下相关的文章来看了一下。这篇东西算是今天学习的笔记。相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散布在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行原创 2009-01-02 23:23:00 · 1568 阅读 · 2 评论