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
APUE
apue
:文件和目录(2)
link、unlink、remove和rename函数任何一个文件可以有多个目录项指向其i节点,创建一个向现存文件连接的方法是使用link函数。#includeintlink(constchar*existingpath,constchar*newpath);/*返回:若成功则为0,若出错则为-1*/此函数创建一个新目录项newpath,它引用现存文件existingpath,如若newpath已
Mr_Avin
·
2017-02-05 11:09
UNIX编程
UNIX编程琐事
孤儿进程与僵尸进程总结
晚上回来google了一下,再次参考
APUE
,认真总结一下,加深理解。2
JT_enlightenment
·
2017-01-16 15:17
linux学习
深究标准IO的缓存
前言在最近看了
APUE
的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,
APUE
中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?
orlion
·
2017-01-07 09:00
深究标准IO的缓存
前言在最近看了
APUE
的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,
APUE
中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?
orlion
·
2017-01-07 09:00
[
APUE
]进程控制(上)
一、进程标识 进程ID0是调度进程,常常被称为交换进程(swapper)。该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程。进程ID1是init进程,在自举(bootstrapping)过程结束时由内核调用。该进程的程序文件在UNIX的早期版本中是/etc/init,在较新版本中是/sbin/init。此进程负责在内核自举后启动一个UNIX系统。init通常读与系统有关的
orlion
·
2017-01-06 20:00
apue
11.6.2避免死锁
讨论避免的方法的时候,先看看什么条件下发生死锁。这在《现代操作系统》中有描述:如果一个线程集合产生死锁,那么它是这样的一个线程集合,该集合内的所有线程,都在等待该集合内其它线程释放资源。按照这种说法,死锁产生的一个必要条件就是至少会形成一个环,该环内每个线程占有一个资源,并请求另一资源。那么,形成环的一个必要条件就是,加锁的顺序一定不是严格按照顺序加锁的。否则,它就是一个有向无环图,就不可能产生死
xmqvhust
·
2016-12-27 19:26
UNIX高级环境编程 第12章 [12.5-12.9]
可重入与异步信号安全等价(
APUE
3edition,10.6)可重入函数除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是可重入的,可以允许有该函数的多个副本同时运行线程安全
shiyang6017
·
2016-12-13 00:00
apue
apue
读书笔记之
apue
.h的设置
apue
读书笔记之
apue
.h的设置学习
apue
时,程序都有一个共同的头文件
apue
.h。那么该如何设置呢?本文是
apue
版本为第三版。首先去图书官方网址下载对应的源码tar包。
313119992
·
2016-12-03 09:58
笔记
学习
apue
读书笔记
apue
第15章 进程间通信
引言进程间相互通信的其他技术-进程间通信管道FIFO消息队列信号量共享内存POSIX信号量管道什么是管道统操作执行命令的时候,经常有需求要将一个程序的输出交给另一个程序进行处理,这种操作可以使用输入输出重定向加文件。如下面的命令:ubuntu@VM-188-113-ubuntu:~$ls-l/etc/>etc.txtubuntu@VM-188-113-ubuntu:~$wc-letc.txt179
秋天的酒xy
·
2016-11-12 11:49
UNIX环境高级编程
apue
第14章 高级I/O
1、引言2、非阻塞I/O系统调用分为两类:低速系统调用和其他。低速系统调用是可以使进程永远阻塞的一类系统调用如果某些文件类型(读管道、终端设备和网络设备)的数据并不存在,读操作可能会使调用者永远阻塞如果数据不能被相同的文件类型立即接受(管道中无空间、网络流控制)。写操作可能会使调用者永远阻塞在某种条件发生之前打开某些文件类型可能会发生阻塞对已经加上强制性记录锁的文件进行写某些ioctl操作某些进程
秋天的酒xy
·
2016-11-12 11:24
UNIX环境高级编程
apue
第14章 高级I/O
1、引言2、非阻塞I/O系统调用分为两类:低速系统调用和其他。低速系统调用是可以使进程永远阻塞的一类系统调用如果某些文件类型(读管道、终端设备和网络设备)的数据并不存在,读操作可能会使调用者永远阻塞如果数据不能被相同的文件类型立即接受(管道中无空间、网络流控制)。写操作可能会使调用者永远阻塞在某种条件发生之前打开某些文件类型可能会发生阻塞对已经加上强制性记录锁的文件进行写某些ioctl操作某些进程
charles1e
·
2016-11-12 11:00
apue
第15章 进程间通信
引言进程间相互通信的其他技术-进程间通信管道FIFO消息队列信号量共享内存POSIX信号量管道什么是管道统操作执行命令的时候,经常有需求要将一个程序的输出交给另一个程序进行处理,这种操作可以使用输入输出重定向加文件。如下面的命令:ubuntu@VM-188-113-ubuntu:~$ls-l/etc/>etc.txt ubuntu@VM-188-113-ubuntu:~$wc-letc.txt 1
charles1e
·
2016-11-12 11:00
apue
第13章 守护进程
转载:http://www.cnblogs.com/mickole/p/3188321.html1.守护进程概述守护进程是生存期长的一种进程,在系统引导时启动,系统关闭时才终止。LinuxDaemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux
秋天的酒xy
·
2016-11-12 11:51
UNIX环境高级编程
apue
第12章 线程控制
1、引言2、线程限制PTHREAD_DESTRUCTOR_ITERATIONS线程退出时,操作系统试图销毁线程特定数据的最大次数PTHREAD_KEYS_MAX进程可以创建的最大的键的数目PTHREAD_STATC_MIN一个线程的栈可用的最小字节书目PTHREAD_THREADS_MAX进程可以创建的最大线程数3、线程属性pthread的属性函数遵循以下的模式:每个对象与一个他自己类型的属性对象
秋天的酒xy
·
2016-11-12 11:18
UNIX环境高级编程
apue
第13章 守护进程
转载:http://www.cnblogs.com/mickole/p/3188321.html1.守护进程概述守护进程是生存期长的一种进程,在系统引导时启动,系统关闭时才终止。LinuxDaemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux
charles1e
·
2016-11-12 11:00
apue
第12章 线程控制
1、引言2、线程限制PTHREAD_DESTRUCTOR_ITERATIONS线程退出时,操作系统试图销毁线程特定数据的最大次数PTHREAD_KEYS_MAX进程可以创建的最大的键的数目PTHREAD_STATC_MIN一个线程的栈可用的最小字节书目PTHREAD_THREADS_MAX进程可以创建的最大线程数3、线程属性pthread的属性函数遵循以下的模式:每个对象与一个他自己类型的属性对象
charles1e
·
2016-11-12 11:00
apue
第8章 进程控制
引言创建新进程,执行程序和进程终止进程属性的ID:实际、有效和保存的用户ID和组ID以及它们如何受到控制原语控制的解释器文件和system函数进程会计进程标识每个进程都有一个非负整型表示的唯一进程ID。因为进程ID标识符总是唯一的,常将其用作其他标识符的一部分以保证其唯一性。进程ID可复用:当一个进程终止后,其进程ID就称为复用的候选者。大多数UNIX系统实现延迟复用算法,新进程的ID不同于最近终
charles1e
·
2016-11-12 11:00
apue
第9章 进程关系
引言终端登陆首先看看终端登录过程,这个过程是BSD的,但是Linux基本相同:管理员创建/etc/ttys文件,每个终端设备有一行表明设备名和getty启动参数。系统自举创建init进程,init进程读取/etc/ttys文件,对每个终端fork并且execgettty.getty打开终端设备,这样就映射到了文件描述符0,1,2.然后初始化环境,execlogin.login基本功能就是读取用户密
charles1e
·
2016-11-12 11:00
信号signal-
APUE
1.9
信号(signal)用于通知进程发生了某种情况。进程有以下3种处理信号的方式。(1)忽略信号。有些信号表示硬件异常,例如,除以0或访问进程地址空间以外的存储单元等,因为这些异常产生的后果不确定,所以不推荐使用这种处理方式。(2)按系统默认方式处理。对除数为0,系统默认方式是终止进程。(3)提供一个函数,信号发生时调用该函数,这被称为捕抓该信号。通过提供自编的函数,我们就能知道什么时候产生了信号,并
jun2016425
·
2016-11-09 23:18
信号
signal
Unix环境高级编程学习
Linux opendir函数
opendir()头文件#include#include函数声明DIR*opendir(constchar*addr)//pathunix环境高级编程的例子#include#include#include"
apue
.h"intmain
cslqm
·
2016-11-06 20:32
Linux环境编程
《
APUE
》笔记-第九章-进程关系
重点:终端登录、网络登录、进程组、会话、控制终端、孤儿进程组1.终端登录终端或者是本地的(直接连接)或者是远程的(通过调制解调器连接)。在这两种情况下,登录都经由内核中的终端设备驱动程序。BSD终端登录:大概过程如下:1.系统自举,内核创建进程ID为1的init进程2.init进程读取文件/etc/ttys,对每一个允许登录的终端设备,fork一次,子进程则execgetty3.getty调用op
A_YT
·
2016-11-06 16:18
内核
UNIX环境高级编程
apue
linux
unix
linux环境编程
linux下判断文件和目录是否存在[总结]
我结合
APUE
第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。2、stat系列函数stat函数用来返回与文件有关的结构信息。
查尔斯.褚
·
2016-11-05 16:23
linux-应用
关于
apue
.h头文件的配置
以下方法经本人亲测有效1、首先先在这个网站上http://www.
apue
book.com下载tar.gz格式的源码包2、找到压缩包的路径比如我的压缩包在/home/myb/Downloads这个目录下然后
Vitaminc_Bin
·
2016-11-05 15:02
配置apue.h头文件
配置apue.h
linux
《
APUE
》笔记-第八章-进程控制
1.重点fork、vfork、wait、waitpid、exec、exit,此外还介绍了:孤儿进程、僵尸进程、设置进程相关ID、system函数、进程会计、用户标识、进程调度、进程时间2.进程标识进程ID:非负、唯一、可复用0--对换进程--内核进程;1--init进程-用户进程;2--页守护进程--内核进程。#includepid_tgetpid(void);//进程IDpid_tgetppid
A_YT
·
2016-11-04 19:07
linux环境编程
[
APUE
chapter 13] 守护进程
作者:isshe日期:2016.10.30邮箱:
[email protected]
:https://github.com/isshe1.相关概念系统进程以赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统引导装入过程的一部分而启动。内核守护进程以无控制终端方式启动,用户层守护进程缺少控制终端可能是守护进程调用了setsid的结果。大多数用户层守护进程都是进程组的组长
i丶scream
·
2016-11-04 10:07
【初探】操作系统
《
APUE
》笔记-第七章-进程环境
1.引言重要知识:命令行参数、环境变量(环境指针、环境表、环境字符串)、进程终止方式、c程序的启动和终止、c程序的存储空间布局、setjmp、longjmp、进程资源限制2.main函数intmain(intargc,char*argv[]);//有argv[argc]=NULL;执行一个新程序的过程:bash->fork()->子shell->exec()->装入新程序,所以,当执行一个新程序时
A_YT
·
2016-11-03 19:18
linux环境编程
[
APUE
chapter 12] 线程控制
作者:isshe日期:2016.10.30邮箱:
[email protected]
:https://github.com/isshe1.前言2.相关概念线程分离:就是说与创建线程分离,当新建线程运行结束,就终止线程并释放资源。默认情况下是不线程分离的,此时新线程运行结束后如果创建线程没有结束就等待创建线程结束,或者使用pthread_join()才能终止新线程,并回收资源。线程分离方
i丶scream
·
2016-11-02 10:06
【初探】操作系统
apue
第7章 进程环境
main函数C程序总是从main函数开始执行。main函数的原型是:intmain(intargc,char*argv[]);其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。当内核执行C程序时,在调用main之前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址——这是由链接编辑器设置的,而连接编辑器则由C编译器调用。启动例程从内核取得命令行参数和
秋天的酒xy
·
2016-10-31 21:19
UNIX环境高级编程
apue
第7章 进程环境
main函数C程序总是从main函数开始执行。main函数的原型是:intmain(intargc,char*argv[]);其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。当内核执行C程序时,在调用main之前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址——这是由链接编辑器设置的,而连接编辑器则由C编译器调用。启动例程从内核取得命令行参数和
charles1e
·
2016-10-31 21:00
[心得]
APUE
高级编程知识整理
主要动手去练习。SVR4UnixSystemVRelease4FreeBSDBerkeleySoftwareDistributionMacOSX核心为Darwin,它基于Mach内核和FreeBSD的组合。UNIX大多数文件IO只需5个函数:open,read,write,lseek,close。未完待后续补充。
tangchen2016
·
2016-10-30 21:14
技术笔记
APUE
笔记---第四章Linux文件系统与文件目录操作
APUE
笔记—第四章Linux文件系统与文件目录操作1.linux文件系统1.1ext2文件系统我们可以把一个磁盘分成一个或多个分区,每个分区可以包含一个文件系统。
men_wen
·
2016-10-30 16:05
Linux
环境编程
[
APUE
chapter 11] POSIX线程
(一般用timespec结构表示)每个线程都包含表示执行环境所需的信息:线程ID一组寄存器栈调度优先级和策略信号屏蔽字errno变量(见AUPE1.7节)线程私有数据(见
APUE
12.6节)编译链接的时候需
i丶scream
·
2016-10-30 11:42
【初探】操作系统
《
APUE
》笔记-第四章-文件和目录
1.引言本章内容:structstat、修改structstat结构的API,目录、文件系统、符号链接注:因为符号链接也是一种文件,所以很多函数都要区分是否跟随符号链接。跟随,则得到的是符号链接指向的文件信息;不跟随,则得到的是符号链接本身的信息。2.stat、fstat、lstat、fstatat文件的信息全部存储在structstat里structstat{mode_tst_mode;/*fi
A_YT
·
2016-10-28 16:22
linux环境编程
《
APUE
》笔记-第三章-文件I/O
1.引言本章讲解的函数有:open、read、write、lseek、close、dup、fcntl、sync、fsync、ioctl都是系统调用,都是不带缓冲的I/O2.文件描述符open、create返回文件描述符fd,其他函数将fd作为参数。1#include2#include34intmain()5{6printf("STDIN_FILENO=%d\n",STDIN_FILENO);7pr
A_YT
·
2016-10-27 11:20
linux环境编程
apue
第11章 线程
1、引言2、线程概念即使在单核处理器上,由于某些线程阻塞时另外一些线程也可以运行,所以多线程还是可以改善响应时间和吞吐量的每个线程都有线程id,一组寄存器值,栈,调度优先级和策略,信号屏蔽字,errno变量以及线程私有数据。一个进程的所有信息对该线程都是共享的:程序的代码,程序的全局内存和堆内存,栈以及文件描述符。3、线程标志线程标志为线程ID,但是该id是一个结构体,只在它所属的进程上下文才有意
秋天的酒xy
·
2016-10-22 21:10
UNIX环境高级编程
apue
第10章 信号
1、引言什么是信号:在计算机科学中,信号(英语:Signals)是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。2、信号在头文件中,信号名都被定
秋天的酒xy
·
2016-10-17 22:52
UNIX环境高级编程
【
APUE
学习笔记】4: Unix Process Control 进程控制
前言本文是
APUE
第四章:文件和目录知识点的总结和代码实践的总结。
elloop
·
2016-10-11 23:24
c++
unix
[单刷
APUE
系列]第九章——进程关系
原文链接:https://juejin.im/post/57f45e3c816dfa0056959805原文来自静雅斋,转载请注明出处。进程组原著这里前面实际上还有两节,但是笔者感觉并不是特别重要,只是Unix各个实现的登录,所以就直接从进程组开始讲。在使用man2intro的时候,Unix系统手册上已经写了很多关于系统的概念,其中就有进程组概念Eachactiveprocessisamember
weixin_34185320
·
2016-10-05 01:32
[单刷
APUE
系列]第七章——进程环境
原文链接:https://juejin.im/post/57f45db45bbb50005b03c605原文来自静雅斋,转载请注明出处。main函数我们知道,无论是汇编还是C语言还是其他的语言,在编译成实际二进制代码的时候,都是存在着一个入口点,一般来说,这个入口点就是main函数,C语言都是从main函数处开始执行,在Unix开发中,main函数都是长这样的intmain(intargc,cha
weixin_34221112
·
2016-10-05 01:26
【
APUE
学习笔记】1: Unix文件IO
前言本文总结
APUE
第三章:文件IO的知识点和对代码实践的总结。实践的系统api头文件:为了节省时间,仅简单记录函数的名字忽略原型,重点在于记下自己实践中的感悟。
elloop
·
2016-09-30 21:21
c++
unix
APUE
第五章 标准IO库 part1
5.1引言5.2流和FILE对象对于标准I/O库,它们的操作则是围绕流(stream)进行的。当用标准I/O库打开或创建一个文件时,我们已使一个流与一个文件相结合.当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了IO库为管理该流所需要的所有信息:用于实际I/O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。#in
shiyang6017
·
2016-09-30 00:00
apue
《
APUE
:chapter 13 》守护进程测试
P375想要初始化为守护进程的程序调用daemonize函数#include2#include3#include4#include56voiddaemonize(constchar*cmd)7{8inti,fd0,fd1,fd2;9pid_tpid;10structrlimitrl;11structsigactionsa;1213umask(0);14if(getrlimit(RLIMIT_NOF
UmdCoding
·
2016-09-16 18:28
linux
apue
第5章 标准I/O库
引言标准库I/O库处理很多细节,如缓冲区分配,以优化的块长度执行I/O等流和FILE对象当打开一个文件时,即返回一个文件描述符,然后该文件描述符就用于后续的I/O操作。而对于标准I/O库,它们的操作时围绕流(stream)进行的。流可用于单字节或多字节(“宽”)字符集流的定向(stream`sorientation)决定了所读、写的字符是单字节还是多字节。只有两个函数可以改变流的定向。freope
charles1e
·
2016-09-08 21:00
IO
APUE
- The implementations of sleep()
Note:Allstatementsofmyunderstandingon
APUE
arebasedonits3rdedition.
APUE
shows3distinctimplementationsofsleep
Dread_naught
·
2016-09-08 20:14
Unix编程
apue
第3章 文件I/O
引言文件I/O的主要有五个常用的函数:openreadwritelseekclose本章主要介绍不带缓存的I/O,所谓不带缓存I/O是指每一个调用都是内核的一个系统调用文件描述符对于内核而言,所有打开的文件都是通过文件描述符引用的。文件描述符0-标准输入,1-标准输出,2-标准错误。在POSIX规范中,已经提供了STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO来替代
charles1e
·
2016-09-07 20:00
apue
第4章 文件和目录
函数stat,fstat,fstatat,lstat#include intstat(constchar*restrictpathname,structstat*restrictbuf); intfstat(intfd,structstat*buf); intlstat(constchar*restrictpathname,structstat*restrictbuf); intlstat(in
charles1e
·
2016-09-07 20:00
apue
第1章 UNIX 基础知识
0环境配置下载:到官网http://www.
apue
book.com/code3e.html下载‘src.3e.tar.gz’解压:$tar-zvx-fsrc.3e.tar.gz安装libbsd:$sudoapt-getinstalllibbsd-dev
秋天的酒xy
·
2016-09-07 20:08
UNIX环境高级编程
apue
第1章 UNIX 基础知识
0环境配置下载:到官网http://www.
apue
book.com/code3e.html下载‘src.3e.tar.gz’解压:$tar-zvx-fsrc.3e.tar.gz安装libbsd:$sudoapt-getinstalllibbsd-dev
charles1e
·
2016-09-07 20:00
unix
【
APUE
学习笔记】0: Unix开发环境搭建
前言本文介绍了如何为Unix环境下C/C++系统编程搭建开发环境:操作系统:macOS10.11.5开发工具:Vim7.4(patches:1-1952)+YCM(YouCompleteMe)+Clang++编译构建:CMake3.0+调试工具:Xcode和GDB/LLDB关于OSmacOS已被验证为是Unix,所以在此系统做Unix开发是可行且适合的。开发工具若是在Windows平台做C++开发
elloop
·
2016-08-31 20:05
c++
开发工具
vim
macOS
unix
socket 传送 大包 send 函数
在
APUE
p610页,send在发送有边界的包时(UDP)时,超过一定大小后会报错,emsgsize;无边界的流式包时,阻塞模式下会发完所有数据后返回,或者出错返回。
qdqade
·
2016-08-24 09:01
数据包
杂记
上一页
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
其他