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
Uinx环境高级编程
《UNIX
环境高级编程
》七进程环境读书笔记
1、进程终止有8种方式使进程终止,其中5种为正常终止:(1)从main返回;(2)调用exit;(3)调用_exit或_Exit;(4)最后一个线程从其启动例程返回;(5)从最后一个线程调用pthread_exit;异常终止有三种方式:(6)调用abort(7)接到一个信号(8)最后一个线程对取消请求做出响应#includevoidexit(intstatus);void_Exit(intstat
ZhichengYee
·
2016-08-08 20:27
UNIX环境高级编程
APUE3学习笔记-第一章-UNIX基础知识
——上善若水,大道至简环境:Ubuntu1604LTS编辑器:Vim编译器:gcc材料:UNIX
环境高级编程
第三版AdvancedProgrammingintheUNIX®Environment,ThirdEdition
itisyang
·
2016-08-06 23:31
APUE
unix
环境高级编程
-高级IO
非阻塞IO:之前曾经把系统调用分为两类,低速系统调用和其他,低速系统调用可能会使进程永远阻塞的一类系统调用。包括:某些文件类型(终端设备、读管道)的数据并不存在,读操作可能会使调用者永远阻塞。如果数据不能被相同的文件类型立即接受,写操作可能会使调用者永远阻塞对已经加上强制记录锁的文件进行读写某些ioctl操作某些进程通信函数非阻塞IO使我们可以发出open、read和write这样的IO操作,并使
hahachenchen789
·
2016-08-05 15:46
Linux
(十三) [终篇] 一起学 Unix
环境高级编程
(APUE) 之 网络 IPC:套接字
.....目录(一)一起学Unix
环境高级编程
(APUE)之标准IO(二)一起学Unix
环境高级编程
(APUE)之文件IO(三)一起学Unix
环境高级编程
(APUE)之文件和目录(四)一起学Unix
环境高级编程
0xCAFEBABE
·
2016-08-03 09:00
linux下文件操作需要关注的函数
前述:本文并不是为了详细讲解每个函数的细节,细节可参考man手册或者《unix
环境高级编程
》一、打开或者创建文件#include#include#includeintopen(constchar*pathname
带鱼兄
·
2016-08-02 11:17
linux之文件操作
unix
环境高级编程
-信号(1)
信号是软件中断,信号提供了一种处理异步事件的方法每个信号都有一个名字,这些名字都以3个字符SIG开头,例如SIGABRT是夭折信号,当进程调用abort函数时产生这种信号。在头文件中,信号名都被定义为正整数常量。不存在编号为0的信号,这种信号叫做空信号。很多条件会产生信号:1.当用户按某些终端键时,引发终端产生的信号,比如delete键,通常产生中断信号(SIGINT)2.硬件异常产生信号:除数为
hahachenchen789
·
2016-07-31 14:34
Linux
unix
环境高级编程
-进程关系
会话:是一个或多个进程组的集合。通常是由shell管道将几个进程编成一组,比如proc1|proc2&进程调用setsid函数建立一个新会话。如果调用此函数的进程不是一个进程组的组长,此函数创建一个新会话,该进程会变成新会话的的会话首进程(sessionleader),此时,该进程是新会话中的唯一进程,该进程成为新进程组的组长进程,新进程组ID是该调用进程的进程ID,该进程没有控制终端,如果在调用
hahachenchen789
·
2016-07-31 11:51
Linux
unix
环境高级编程
-读书笔记(7)
终端登陆:1BSD终端登陆:当系统自举时,内核创建进程ID为1的进程,也就是init进程,init进程使系统进入多用户模式,init读取文件/etc/ttys,对每一个允许登陆的终端,init调用一次fork,所生成的子进程则execgetty程序。getty对终端设备调用open函数,将终端打开,然后getty输出login之类的信息,等待用户输入用户名。进程组:是一个或多个进程的集合,同一进程
hahachenchen789
·
2016-07-30 23:38
Linux
Linux C 收藏
某招聘要求:熟悉高性能分布式网络服务端设计开发,熟悉epoll、多线程、异步IO、事件驱动等服务端技术;《UNIX
环境高级编程
(第3版)》apue.h等源码文件的编译安装《UNIX网络编程(第3版)》unp.h
52php
·
2016-07-18 14:00
unix
环境高级编程
第七章习题的一些拙见
apue7.1:这道题目书上给出了明确的解释,没有明确返回值的时候,这里用shell检查返回值的时候是随机的,在不同的机器上会有不同的结果,具体取决于栈中的内容。这道题目我还是想把书上的有张图上一下,要分清楚exit和_exit的区别!这张图非常清晰的指出了exit函数和_exit的区别,这个据说是一个面试题,很显然,exit函数在返回到内核之前要进行一些清理工作,要执行用户自己定义的清理函数,和
code_mlym
·
2016-07-17 11:00
unix
标准
c语言
函数
编程
apue
Linux ipcs命令与ipcrm命令的用法详解
以下是对Linux中的ipcs命令与ipcrm命令的用法进行了介绍,需要的朋友可以过来参考下是linux/
uinx
上提供关于一些进程间通信方式的信息,包括共享内存,消息队列,信号ipcs用法ipcs-a
alonones
·
2016-07-12 02:24
命令
linux
ipcs
linux
Linux ipcs命令与ipcrm命令的用法详解
以下是对Linux中的ipcs命令与ipcrm命令的用法进行了介绍,需要的朋友可以过来参考下是linux/
uinx
上提供关于一些进程间通信方式的信息,包括共享内存,消息队列,信号ipcs用法ipcs-a
alonones
·
2016-07-12 02:20
命令
linux
ipcs
unix
环境高级编程
第六章习题的一些拙见
整个第六章有点乏味啊,不是那么好玩,我还是想快点到后面的章节,很好玩。apue6.1:使用在6.3节中介绍的getspnam函数返回的spwd结构体中的sp_pwdp字段来访问加密字段,这个字段是在/etc/shadow文件中存储的,这个函数就是访问这个文件的系统接口。现在的linux操作系统在/etc/passwd中的加密口令字段都选择了使用占位符,而不真正的将加密字段给每个用户都能查看。apu
code_mlym
·
2016-07-11 16:01
apue
需要学习的书籍清单
现代操作系统》《计算机程序的构造与解释》《Linux内核设计与实现》《Unix&Linux大学教程》《鸟哥的Linux私房菜》《LinuxShell脚本攻略》 网络编程类:《UNIX网络编程》《UNIX
环境高级编程
denliv_hui
·
2016-07-10 15:36
《UNIX
环境高级编程
》---3.文件I/O
一、打开、创建文件、关闭文件文件描述符:一个非负整数,范围是0~OPEN_MAX-1。内核用它来标识进程正在访问的文件。当进程创建时,默认为它打开了3个文件描述符,它们都链接向终端:0:标准输入1:标准输出2:标准错误输出通常我们应该使用STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO来替代这三个幻数,从而提高可读性。这三个常量位于中。2.open和openat函数
taoyanqi8932
·
2016-07-09 20:00
unix
openat()函数的用法示例
《Unix
环境高级编程
》的第三章和第四章出现了大量的以at结尾的函数,如openat、fstatat等,书中只是粗略的说明了下,没有实际的例子让人很难懂。
Lina_ACM
·
2016-07-09 08:00
关于path_alloc()函数
在《UNIX
环境高级编程
》学习中,在第四章的程序清单4-7中,发现了一个“错误”。
Lina_ACM
·
2016-07-08 09:00
《UNIX
环境高级编程
》---2 UNIX标准及实现
UNIX标准及实现UNIX标准ISOC:意图是提供C程序的可移植性,使得它能够适合于大量不同的操作系统。该标准不仅定义了C程序设计语言的语法和语义,还定义了标准库POSIX(PortableOperatingSystemInterface):指的是可移植操作系统接口。该标准的目的是提升应用程序在各种UNIX系统环境之间的可移植性。它定义了“符合POSIX”的操作系统必须提供的各种服务。POSIX包
taoyanqi8932
·
2016-07-07 20:00
unix
《UNIX
环境高级编程
》---1.UNIX基础知识
UNIX基础知识一、UNIX系统UNIX内核的接口称之为系统调用。公用函数库构建在系统调用接口之上。应用程序既可以使用公用函数库,也可以使用系统调用。UNIXshell是一个特殊的应用程序,它为其他应用程序提供了一个接口。路径名由斜线分隔的一个或者多个文件名组成的序列:以斜线开头的路径名称为绝对路径名以非斜线开头的路径名称为相对路径名文件系统根的名字/是一个特殊的绝对路径名。它不包含任何其他的字符
taoyanqi8932
·
2016-07-06 16:00
unix
【UNIX
环境高级编程
】信号安全——可重入函数
可重入函数(用于信号处理函数、且安全时的叫法),即是在信号处理函数中可以调用的函数,他们是安全的,不安全的如malloc(试想:线程正在调用malloc进行分配,而信号来了,在处理函数里面有调用malloc,那么就很有可能对进程造成破坏,破坏储存区维护的链表)、getpwnam等可重入函数在处理操作期间,会阻塞任何会引起不一致的信号发送。试想下面一个情况:因为在信号处理函数执行时,如果里面执行了低
weilin.jiang
·
2016-07-06 15:04
C/C++
Linux
【UNIX
环境高级编程
】信号安全——可重入函数
可重入函数(用于信号处理函数、且安全时的叫法),即是在信号处理函数中可以调用的函数,他们是安全的,不安全的如malloc(试想:线程正在调用malloc进行分配,而信号来了,在处理函数里面有调用malloc,那么就很有可能对进程造成破坏,破坏储存区维护的链表)、getpwnam等可重入函数在处理操作期间,会阻塞任何会引起不一致的信号发送。试想下面一个情况:因为在信号处理函数执行时,如果里面执行了低
Jammg
·
2016-07-06 15:00
APUE 1-3.c列出一个目录中的所有文件
仅用于将信息输出到标准错误;当程序作为守护进程运行时,需要有另外的出错例程(函数)来处理守护进程可能输出的信息,例如与syslog进程通信并记录到日志等,限于篇幅,这里没有整合相应的源码,有兴趣的童鞋,请参考《UNIX
环境高级编程
Lina_ACM
·
2016-07-06 09:00
APUE 《UNIX
环境高级编程
》编译问题彻底解决方案
前些天,写了篇博客(最后一年的时间,应该做些什么呢?)发誓要好好学一下《UNIX环境高级编译》(下面简称APUE),可一个小小的编译问题就悲剧了我好几天,比如APUE书上的第一个程序是这样的: #include"apue.h" #include int main(intargc,char*argv[]) { DIR*dp; structdirent*dirp; if(argc!=2) { err_
Lina_ACM
·
2016-07-05 11:00
APUE [Linux C 编程开发环境(工具链,编译,汇编,链接,库)基础知识与实践]
前言本博文包括对下面书籍的学习笔记,以及实际上机编程练习,程序运行分析等的总结,作为日后工作的参考:《UNIX
环境高级编程
(第三版)》《深度探索Linux操作系统:系统构建和原理解析》《深入理解计算机系统
Lina_ACM
·
2016-07-05 10:00
unix
环境高级编程
第五章习题的一些拙见
开心,又到更新新的一章的时间了XD!apue5_1:这道题还是有意思的,虽然看上去比较简单,但是其中蕴含的东西还是比较多的。先把自己在这章中最重要的体会写下来吧!首先这一章讲的是IO流,那么IO流和直接的文件的系统调用有什么不同那?我们先看一下read函数的原型size_tread(intfd,void*buf,size_tnbytes);很显然我们在进行系统调用的时候要设置缓冲区,而缓冲区大小的
code_mlym
·
2016-07-04 10:27
apue
《UNIX
环境高级编程
(第三版)》中apue.h头文件的设置
在学习《UNIX
环境高级编程
(第三版)》遇到了apue.h的问题,这个头文件是作者自己定义的下载地址在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。
taoyanqi8932
·
2016-06-28 22:00
unix
unix
环境高级编程
第四章习题的一些拙见
重新开始更新第四章的内容,每天一点点。apue4.1:由于在这里lstat是不跟随符号文件的,而stat是跟随符号文件的,这样一来,如果使用stat,而不使用lstat那么就无法观察到符号文件。在书上4.3姐中有提到。apue4.2:首先我在ubuntu的shell上查看原来的umask是多少,结果是0002,这里touch一个文件是不确定的,但是其他者的权限中写的权限一定是没有的。因为创建一个文
code_mlym
·
2016-06-24 21:03
c语言
unix
函数
编程
标准
apue
SVR4 和 4.3+BSD说明
博客来源:http://bbs.chinaunix.net/forum-viewthread-tid-1508471.html我在学习Unix
环境高级编程
一书时,不时看到SVR4,4.3+BSD故然在网上找了一些资料
逍遥硖
·
2016-06-12 17:28
Linux系统编程
UNIX
环境高级编程
笔记之高级I/O
本章说明了很多高级I/O功能:非阻塞I/O——发一个I/O操作,不使其阻塞,记录锁,STREAMS机制I/O多路转接——select和poll函数readv和writev函数,以及存储映射I/O(mmap函数)
bakari
·
2016-06-05 16:00
unix
环境高级编程
第三章习题的一些拙见
写在前面:自学apue,时间有限,这个系列都是抽时间写的,目前已经看到15章,现在从头做题,如有错误还请指教。apue3.1:write和read这样的函数都属于系统调用,这里具体所指的没有缓冲区是没有用户缓冲区,而不是指没有内核缓冲区,这里以我个人的认识认为,这里write和read将数据拷贝到缓冲区后并不直接写到文件中,而是等一定条件发生后才写进去,但是具体机制还需研究。同时这里也暴露了一个问
code_mlym
·
2016-06-04 23:37
apue
UNIX
环境高级编程
笔记之线程
本章涉及到线程的一些基本知识点,讨论了现有的创建线程和销毁线程的POSIX.1原语,此外,重点介绍了线程同步问题,讨论了三种基本的同步机制:互斥量、读写锁、条件变量。
bakari
·
2016-05-30 12:00
UNIX
环境高级编程
笔记之进程控制
本章重点介绍了进程控制的几个函数:fork、exec族、_exit、wait和waitpid等,主要需要掌握的是父进程和子进程之间的运行机制,怎么处理进程的正常和异常终止、以及怎么让进程执行不同的程序等知识点。下一章将进一步说明一个进程和其他进程之间的关系——会话和作业控制。
bakari
·
2016-05-28 20:00
UNIX
环境高级编程
笔记之进程环境
本章讲的都是一些非常基础的知识,目的是为了下一章讲进程控制做铺垫,所以,本章就不做过多的总结了,直接看图吧。
bakari
·
2016-05-27 20:00
Linux探秘之I/O效率
一、文章来由最近看了《UNIX
环境高级编程
》,对以前比较模糊的一些知识结构又做了进一步的加强,特别是前两章讲到不带缓冲的文件I/O和带缓冲的标准I/O,对read、write、fread、fwrite、
bakari
·
2016-05-27 19:00
UNIX
环境高级编程
笔记之标准I/O库
一、总结文件I/O一章讲了不带缓冲的I/O,本章讲的是带缓冲的I/O。不带缓冲针对的是内核的系统调用,而带缓冲针对的是用户空间的标准库函数,是基于带缓冲的I/O实现的。不带缓冲的I/O通过文件描述符的方式来引用一个文件,而带缓冲的I/O则通过文件流(stream)的方式来引用文件。至于为什么要用流的方式,原因就是带缓冲区,这样文件的读写就要经过缓冲区做缓冲,就像水流一样。引入标准IO库的目的是为了
bakari
·
2016-05-26 19:00
UNIX
环境高级编程
笔记之文件I/O
一、总结在写之前,先唠几句,《UNIX
环境高级编程
》,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是“哇”这种很吃惊的表情。
bakari
·
2016-05-25 23:00
PHP程序员进阶之路好书籍推荐
·《UNIX网络编程卷1(第3版)》·《UNIX网络编程卷2(第2版)》·《UNIX
环境高级编程
(第3版)》·《UNIX编程艺术》·《MySQL技术内幕(第5版)》·《深入理解计算机系统》·《用TCP/
coco510
·
2016-05-19 14:54
apue的配置
刚开始看unix
环境高级编程
这本书,先说说今天解决的配置问题。apue.2e:首先,1.下载源代码,在http://www.apuebook.com/下载。
姬XL_1207
·
2016-05-18 19:32
unix
环境配置
Unix
环境高级编程
(阅读笔记)----sigsuspend函数
更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞,使用这种技术可以保护不希望由信号中断的代码临界区。1)头文件:#include2)一个保护临界区代码的错误实例:(sigprocmask()和pause()实现)#include#include#includevoidhandler(intsig) //信号处理函数的实现{ printf("SIGINTsig");}intma
a2796749
·
2016-05-14 10:00
《UNIX
环境高级编程
》(exec)
《UNIX
环境高级编程
》(exec)函数声明特性exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段,它并不创建新的进程;exec函数如果执行成功,新的程序会覆盖旧的程序,除非调用出错,否则不会跑
Timsley
·
2016-05-12 21:00
linux
exec
《UNIX
环境高级编程
》(system)
《UNIX
环境高级编程
》(system)函数声明特性system函数主要用于执行shell命令;system有三个返回值(因为system函数的实现是通过调用fork、exec、waitpid):如果fork
Timsley
·
2016-05-12 21:00
linux
System
《UNIX
环境高级编程
》(竞争条件)
《UNIX
环境高级编程
》(竞争条件)概念当多个进程都企图对共享数据进程某种处理,而最后的结果又取决于进程运行的先后顺序时,我们认为这发生了竞争条件解决方式
Timsley
·
2016-05-12 21:00
linux
unix
竞争条件
Unix
环境高级编程
(阅读笔记)----setjmp和longjmp函数使用详解
非局部跳转语句---setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#includeIntsetjmp(jmp_buf env); 返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值Voidlongjmp(jmp_bufenv,intval); 在希望返回
a2796749
·
2016-05-12 21:00
Unix
环境高级编程
(阅读笔记)----sigaction函数
sigaction函数的功能是检查或修改指定信号相关联的处理动作,此函数取代UNIX早期版本使用的signal函数。[cpp] viewplain copy #include int sigaction(int signo, const struct sigaction *restrict act, struct sigaction *restrict oact); //若成功则返回0,出错则
a2796749
·
2016-05-12 16:00
Unix
环境高级编程
-----kill、raise、alarm、pause函数
kill函数将信号发送给进程或者进程组,raise函数则运行进程向自身发送信号。1. #include 2. int kill(pid_t pid,int signo); 3. int raise(int signo); 4. //若成功,则返回0,出错则返回-1. 使用alarm函数可以执行一个计时器,在将来某个指定的时间该计时器会超时。当计时器超时时,产生SIGALRM信号,
a2796749
·
2016-05-12 16:00
Unix
环境高级编程
(阅读笔记)----可靠信号
在产生信号时,内核通常在进程表中设置某一种形式的标志。当对信号采取了这种动作时,我们说向进程递送了一个信号。在信号产生和递送之间的时间间隔内,称信号是未决的。进程可以选用信号递送阻塞。如果为进程产生了一个选择为阻塞的信号,而且对该进程的动作是默认动作或捕捉该信号,则为该进程将次信号保持为未决状态,直到该进程(1)对此信号解除了阻塞,或者(2)将次信号的动作更改为忽略。内核在递送一个原来被阻塞的信号
a2796749
·
2016-05-12 15:00
Unix
环境高级编程
(阅读笔记)----信号集、信号屏蔽函数sigprocmask
信号屏蔽字是指一个进程中当前阻塞而不能够递送给该进程的信号集。信号集则是一个能表示多个信号的集合的一种数据类型,为sigset_t。与信号集设置相关的函数有如下几个:// 下列四个函数成功返回0,出错返回-1 int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set,
a2796749
·
2016-05-12 15:00
apue.h头文件错误和error错误处理
《unix
环境高级编程
》第三版学习apue.h头文件错误参考网址http://www.linuxidc.com/Linux/2013-01/77467.htm注意点:按要求解压到/root目录tar-xzvfsrc.tar.gz-C
qq_26437925
·
2016-05-12 09:00
《UNIX
环境高级编程
》(wait和waitpid)
声明一般调用wait或者waitpid,是为了等待某个进程的状态变化,常用于父子进程的同步操作pid_twait(int*status);-参数status说明用来获取子进程调用exit的参数值pid_twaitpid(pid_tpid,int*status,intoptions);-参数pid说明1.当pid==-1:等待任一子进程,这种情况下,waitpid等于wait2.当pid>0:等待子
Timsley
·
2016-05-11 12:00
unix
wait
waitpid
《UNIX
环境高级编程
》(exit)
声明status用来标识进程退出的状态,你可以通过调用wait来获取这个返回值特性不管进程是正常终止还是异常终止,终止时,都会关闭所有打开的描述符,释放它所使用的存储器;子进程可以通过终止函数(exit、_exit、_Exit),设置参数status的值,来告知父进程它是如何终止的;如果父进程在子进程之前终止,那么这些子进程的父进程会变为init进程,我们称这些进程继承自init进程;如果子进程在
Timsley
·
2016-05-11 12:00
unix
exit
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他