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环境高级编程
关于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
《
UNIX环境高级编程
》(fork和vfork)
《
UNIX环境高级编程
》(fork和vfork)fork声明特性调用fork可以创建一个新的进程;fork有两个返回值:返回0给子进程(原因是每个进程只有一个父亲,子进程可以通过getppid去得到父进程的
Timsley
·
2016-05-11 09:00
unix
fork
vfork
《
UNIX环境高级编程
》(进程标示符)
概念进程ID:非负整型、用于标识进程特性1)ID为0的进程:通常是调度进程,常常被称为交换进程。该进程是内核的一部分,不执行磁盘上的任何程序,也被叫做系统进程;2)ID为1的进程:通常是init进程,在内核引导程序结束后调用。init进程会去读取/etc/rc*或/etc/inittab或/etc/init.d中的文件。init进程不会终止。即使它以超级用户的权限运行,但它是一个用户进程,而不是系
Timsley
·
2016-05-11 08:00
unix
进程
UNIX环境高级编程
(阅读笔记)---多线程信号
多线程信号1.默认情况下,信号将由主进程接收处理,就算信号处理函数是由子线程注册的 2.每个线程均有自己的信号屏蔽字,可以使用sigprocmask函数来屏蔽某个线程对该信号的响应处理,仅留下需要处理该信号的线程来处理指定的信号。 3.对某个信号处理函数,以程序执行时最后一次注册的处理函数为准,即在所有的线程里,同一个信号在任何线程里对该信号的处理一定相同 4.可以使用pthread_kill对指
a2796749
·
2016-05-10 14:00
《
UNIX环境高级编程
》笔记--伪终端
1.什么是伪终端伪终端对于一个程序来说,看上去像一个终端,但事实上并不是一个真正的终端。下图显示了使用伪终端时相关进程的典型结构。1.通常一个进程打开伪终端主设备,然后调用fork。子进程建立了一个新的会话,打开一个相应的伪终端从设备,将其文件描述符复制到标准输入、标准输出和标准出错,然后调用exec。伪终端从设备成为子进程的控制终端。2.对于伪终端从设备之上的用户进程来说,其标准输入、标准输出和
a809146548
·
2016-05-10 11:00
C++
linux
unix
终端
C++11
《
UNIX环境高级编程
》笔记--终端IO
终端IO有两种不同的工作模式:1.规范模式输入处理。在这种模式中,终端输入以行为单位进行处理。对于每个读要求,终端驱动程序最多返回一行。例如,若shell把标准输入重定向到终端,2.非规范模式输入处理。输入字符并不组成行。终端设备是由一般位于内核中的终端驱动程序控制的。每个终端设备有一个输入队列和一个输出队列。大多数UNIX系统在一个称为终端行规程(terminallinediscipline)的
a809146548
·
2016-05-10 11:00
C++
unix
终端
C++11
UNIX环境高级编程
(阅读笔记)---线程相关函数
线程汇总:1.#include线程头文件,链接出错是加上-lpthread,因为pthread不是Linux中默认的库。2.pthread_t pthread_self()返回自身的线程ID,C中输出可以指定格式%lu。3.intpthread_create(pthread_t*restricttidp,constpthread_attr_t*restrictattr,void*(*start_r
a2796749
·
2016-05-04 20:00
UNIX环境高级编程
(阅读笔记)——线程属性
pthread_attr_t的缺省属性值1、初始化一个线程对象的属性intpthread_attr_init(pthread_attr_t*attr); 返回值:若是成功返回0,否则返回错误的编号形 参:attr 指向一个线程属性的指针说 明:Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。 pthread_at
a2796749
·
2016-05-03 20:00
孤儿进程与僵尸进程
1、前言之前在看《
unix环境高级编程
》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。
leiting_imecas
·
2016-05-03 18:00
僵尸进程
孤儿进程
unix环境高级编程
(阅读笔记)----线程同步
多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图。1.互斥量可以通过使用pthread的互斥接口保护数据,确保同一时间只有一个线程访问数据,互斥量(mutex)从本质上说是一把锁,在访问共享资源前对互斥量进行枷锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量进行加锁的线程将被阻塞知道当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上阻塞
a2796749
·
2016-05-03 16:00
《
UNIX环境高级编程
》(进程环境)
本章知识点概述:1)进程终止的方式:正常终止、异常终止2)C程序的存储空间分布:正文段、初始化数据段、堆、栈3)存储器分配:malloc、calloc、realloc思维导图:
Timsley
·
2016-04-30 16:08
Linux
《
UNIX环境高级编程
》(进程环境)
本章知识点概述:1)进程终止的方式:正常终止、异常终止2)C程序的存储空间分布:正文段、初始化数据段、堆、栈3)存储器分配:malloc、calloc、realloc思维导图:
Timsley
·
2016-04-30 16:00
unix
Linux进程详解
本文实际上是"
UNIX环境高级编程
"的读书笔记. 所以许多细节并没有表述出来,想要刨根问底的同学建议再看看原书.之所以把读书笔记贴到博客上,出于两个目的:1.加深自己的学习效果. 2.
chengangdzzd
·
2016-04-21 11:00
linux
进程
UNIX环境高级编程
一书中见到的命令
1od格式化输出文件中的数据例如:od-cfile选择ASCII码字符或者是转义字符输出2du显示文件中块的数量例如:du-sfile返回制定文件和目录中的所有块3wc统计指定文件中的字节数、字数、行数,并将统计结果显示输出。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。例如:wc-cfile统计字节数4touch更改文档或目录的日期时间,包括存取时间和更改时间,还可用
obudunkey
·
2016-04-12 09:08
文件I/O编程
库函数文件编程类更多详细内容请参考
UNIX环境高级编程
中文版fopen函数名:open函数原型:intopen(constchar*pathname,intflags)intopen(constchar
CharyPro
·
2016-04-09 11:43
Linux
unix环境高级编程
(第三版)中apue.h文件的配置问题
最近刚开始学习
unix环境高级编程
(第三版),其中有个作者自己写的apue.h文件,在这归总下相应的配置方法,希望对有需要的朋友们有所帮助首先http://www.apuebook.com/code3e.html
guicaisa
·
2016-04-04 16:00
简易Shell
出处:课程《Unix高级环境编程》扩展书籍《
Unix环境高级编程
》的例1.5、1.8功能需求程序从控制台执行,启动后显示一个命令提示符“->”。用户可以通过给特定的环境变量赋值来改变命令提示符形式。
wgdzz
·
2016-03-30 13:00
linux
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他