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
-alarm和pause函数,关于信号
题记:这里主要是用alarm和pause来实现sleep函数。会分析其中存在的bug,会很精辟。当然,大牛的恩赐啦~~不然我介些小生怎看到如此的经典呢?!1实现sleep1.1一个含有3个BUG的sleep的实现#include#includestaticvoidsig_alrm(intsigno){}unsignedintsleep1(unsignedintnsecs){if(signal(SI
wusoule
·
2020-08-05 15:31
unix
信号
apue
使用alarm配合信号实现sleep
author:selfimprblog:http://blog.csdn.net/lgg201mail:
[email protected]
APUE
中描述Solaris9是使用alarm实现的sleep
iteye_14050
·
2020-08-05 13:59
操作系统还原真相阅读笔记(一)——答疑解惑
说明1、本书真是好书2、想到再补充一、为什么库函数可以调用系统调用 之前看
APUE
的时候看到的,exit(库函数)实现实际上还是调用了系统调用sys_exit。
wenshizhang
·
2020-08-04 18:22
kiwi
操作系统还原真相笔记
unix环境高级编程第三版源代码编译及使用
先强调一下,笔者的开发环境是centos6.8,按照如下步骤来编译源代码,并搭建自己的开发环境:(1)下载源代码,可以去官网下载:http://
apue
book.com/code3e.html如果实在
咸亨苦行僧
·
2020-08-04 06:31
linux应用编程
《unix环境高级编程·第三版》源代码编译及使用
《unix环境高级编程》中有很多示例代码需要包含作者自定义的头文件,如"
apue
.h"。
咸亨苦行僧
·
2020-08-04 06:31
linux应用编程
linux
APUE
读书笔记---进程间通信(IPC)之共享内存区mmap
APUE
读书笔记—进程间通信(IPC)之共享内存区mmap1.共享内存区概述共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不在涉及内核。
men_wen
·
2020-08-03 20:52
Linux
环境编程
读书笔记
内存
通信
ipc
内核
spurious wakeup虚假唤醒(待总结)
看过
apue
大家都知道互斥器用于排他性的访问共享数据而不是等待原语,如果需要等待某个条件发生需要用条件变量。
TTC
·
2020-08-03 19:15
How&Why
文件I/O与系统编程
因此对于本文的读者,至少要求读过
APUE
,或者是实际有写过相关代码的程序员,因为知识有点零散,所以我会尽可能以FAQ的形式呈现给读者。
zhangyifei216
·
2020-08-03 09:30
linux系统编程
APUE
NOTE
一、书中代码的编译1、README指出:Tobuildthesource,edittheMake.defines.*fileforyoursystemandsetWKDIRtothepathnameofthetreecontainingthesourcecode.因此,需修改Make.defines.linux文件下的WKDIR;2、Thenjustrun"make".3、将/include/ap
bigsnowstorm
·
2020-08-02 23:31
Unix
进程概述和内存分配
因此对于本文的读者,至少要求读过
APUE
,或者是实际有写过相关代码的程序员,因为知识有点零散,所以我会尽可能以FAQ的形式呈现给读者。进程一个进程的内存布局是什么样的?
zhangyifei216
·
2020-08-01 08:35
linux系统编程
shell脚本判断文件是否存在
/bin/shmyFile="/root/
apue
/example.xml"#这里的-f参
52coder
·
2020-07-31 20:01
C
Linux
程序分text, data (initialized), bss, stack, heap几个段
根据
APUE
,程序分为下面的段:.text,data(initialized),bss,stack,heap。
leerobin83
·
2020-07-31 19:33
linux
异步信号安全和线程安全
异步信号安全和线程安全刺猬@http://blog.csdn.net/littlehedgehog问题源自于
apue
中stevens老先生有关线程安全函数的介绍,stevens有曰:如果一个函数对于多线程来说是重入的
一样让人玩玩
·
2020-07-30 12:23
sync & fsync &fdatasync
From
Apue
3.13sync、fsync和fdatasync函数传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。
yangjianxingg
·
2020-07-30 06:13
linux下几种加锁方法的比较
信号量锁real0m31.255suser0m8.996ssys0m21.111spthread_mutex_treal0m0.018suser0m0.015ssys0m0.003s与stevens在
APUE
im3094
·
2020-07-29 15:46
pthread 主线程子线程退出关系
实例代码:#include"
apue
.h"#includepthread_tntid;//线程IDvoidprintids(constchar*s){pid_tpid;pthread_ttid;pid=
人生如叶
·
2020-07-29 05:52
Linux系统编程
c
linux下多进程同时操作文件
在操作文件之前,很有必要了解一下内核中文件的存储和访问方式:这张图摘自《
APUE
》,我觉得画的很好,所以就没有自己再画了。
今日无云
·
2020-07-28 13:06
Linux
一个简单的时间获取客户端/服务器程序(疑难解决)
系统:centos搭建unix网络编程环境1.下载本书的头文件及示例源码http://www.
apue
book.com/code3e.html2.解压unpv1.e.tar.gz后进入目录查看README
Lqsaber
·
2020-07-28 05:18
Unix网络编程
UNIX环境高级编程学习总结
这些日子学习了一下
APUE
(AdvancedProgrammingintheUNIX,UNIX环境高级编程)。
女粉丝很多的码农
·
2020-07-27 22:13
个人读书笔记
问题解决方法及同步和一致性
在阅读
APUE
(第三版)的12.9线性和fork时,读的云里雾里,怎么都读不懂,本打算像以前一样,读不懂就算了,过。
lingnanlu
·
2020-07-27 15:46
linux进程调度,优先级、进程nice值
我自己补充一下:
APUE
8.16中讲到进程调度,UNIX系统历史上对进程提供的只是基于调度优先级的粗粒度的控制,调度策略和调度优先级是由内核确定的,但是内核可以通过调整nice值选择以更低优先级运行(通过调整
mmshixing
·
2020-07-16 03:07
unix环境编程
网络编程
APUE
——进程控制
1.进程标志符:(1)每个进程都有一个非负整数表示的唯一进程ID,并且进程ID可以重用。ID为0的进程通常是调度进程,被称为交换进程,此进程是内核的一部分,不执行任何磁盘上的程序,也被称为系统进程。进程ID1是init进程,在自举过程中由内核调用,是一个普通的用户进程,但是以超级用户权限运行。(2)获取进程标志符的函数:#includepid_tgetpid(void);pid_tgetppid(
nullptr_
·
2020-07-16 02:57
unix
APUE
——信号
1.信号概念:信号是事件驱动的软件中断机制。每个信号名字都以三个字符SIG开头,在中被定义为正整数。2.对信号所采取的动作有忽略(SIG_IGN)、按系统默认(SIG_DFL)、自定义信号捕捉函数三种处理方式。进程调用了exec(3)家族函数执行程序时,原先设置为捕捉的信号都将改为按系统默认方式处理。而fork(2)之后的子进程继承父进程设置的信号处理方式。3.signal函数:用于注册一个信号处
nullptr_
·
2020-07-16 02:57
unix
操作系统
linux
APUE
——进程关系
1.进程组:每个进程除了有一个进程ID外,还属于一个进程组。进程组是一个或多个进程的集合,可以通过getpgrp(void)函数获取进程组ID。每个进程组有一个组长进程,组长进程ID等于等于其进程组ID。2.组长进程可以创建一个进程组,然后创建该组中的进程。只要在某个进程组中有一个进程存在,则该进程组就存在,而与其组长进程终止与否无关。从进程组创建开始到其中最后一个进程离开为止的时间区间称为进程组
nullptr_
·
2020-07-16 02:57
unix
File and Directories 《
APUE
》Chapter-4
文件与目录4.1Introduction上一章节以一般文件的IO操作为核心,讲解open,read,write等函数的使用。本章我们着眼于文件系统额外的特性以及文件的属性。一些函数可以用以修改文件属性:改变所有者,改变权限等等。本章也会涉及到Unix文件系统结构的细节和symboliclinks(符号链接),最后讲解操作目录的函数。4.2stat,fstat,andlstatFunctions用于
猎羽
·
2020-07-15 22:36
Linux
APUE
阅读笔记(chapter 14)——高级I/O
本章主要介绍一些高级I/O,包括非阻塞I/O、文件记录锁、STREAMS、I/O多路转接、writev/readv、writen/readn以及存储映射。1、非阻塞I/O:对于write函数调用,在有些情况下(如数据不能被立即接受:管道中无空间、网络流控制),会产生阻塞;对于read函数调用,在有些情况下(如数据不存在,如管道、终端设备和网络设备),会产生阻塞。有时候不希望有此种阻塞,因此可以在o
YYYYYEEEETTTTTTTEEEE
·
2020-07-15 19:36
APUE
阅读笔记——信号(Chapter 10)
本章主要讲述信号的知识,包括信号的基本概念以及给进程发送信号。信号不可靠的原因主要是(1)信号有可能丢失;(2)信号不能阻塞。新的信号机制主要对这两个进行了改进(怎么改进的)。分析了在考虑信号的情况下的可重入函数及中断的系统调用将要发生的情况。介绍了和信号处理程序紧密相关的kill和arise、sleep和alarm函数。介绍了信号集的概念并介绍了依信号集的应用,包括了sigprocmask、si
YYYYYEEEETTTTTTTEEEE
·
2020-07-15 19:36
Linux
APUE
学习笔记
[在此处输入文章标题]Chapter1UNIXSystemOverviewUnix架构(程序员角度)以上图形是重程序员的角度描述Unix的整体架构。最内层的实心圆是kernel(内核),我们的应用程序无法直接调用。Unix提供一组systemcalls(系统各调用),是我们的应用程序可以间接的访问Unix的内核程序。Systemcalls也是就Unix提供的系统API,相当于Windows32位操
bournelee
·
2020-07-15 19:30
Unix/Linux
APUE
阅读笔记:Chapter 15 IPC
阅读前注意:
APUE
作者推荐本章了解相关技术即可,不要使用。Chapter1515.2管道是比较传统的IPC方式。有着两个缺点。1、不是所有的系统都支持双通道管道。
MagiSu
·
2020-07-15 18:01
UNIX
解决Unix环境高级编程示例中的 undefined reference to `err_quit'
在编译
APUE
书中的例子(Page290,程序清单11-1打印线程ID)时,出现如题所述错误,使用的编译命令为$gcc-oprint_thread_idprint_thread_id.c-lpthread
DavidYuxuan
·
2020-07-15 17:12
Linux
Emacs显示行号
Ubuntu10.04EmacsVersion:Emacs231、下载插件linum.el2、拷贝该文件至/usr/share/emacs/site-lisp目录下mahone@lte:~/software$ls
apue
DavidYuxuan
·
2020-07-15 17:12
Linux
APUE
学习笔记——第十三章 守护进程
1、编程规则(1)首先调用umask将文件模式创建屏蔽字设置为0.由继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限。例如:若守护进程要创建一个组可读、写的文件,而继承的文件模式创建屏蔽字可能屏蔽了这两种权限,于是所要求的组可读、写就不能起作用。(2)调用fork,然后使父进程退出(exit)。这样做实现了下面几点:第一,如果该守护进程是作为一条简单shell命令启动的,那么父进程终止使得she
xkey
·
2020-07-15 16:00
Linux编程
关于gcc内置函数和c隐式函数声明的认识以及一些推测
最近在看
APUE
,不愧是经典,看一点就收获一点。但是感觉有些东西还是没说清楚,需要自己动手验证一下,结果发现需要用gcc,就了解一下。
weixin_34212762
·
2020-07-15 15:45
APUE
——Chapter 7、8:进程环境和进程控制
Chapter7:进程环境当内核执行C程序时,在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址。启动例程从内核取得命令行参数和环境变量值,然后为按上诉方式调用main函数做好安排。进程终止8种方式使进程终止,–>5种正常终止:(1)从main返回。(2)调用exit。(3)调用_exit或_Exit。(4)最后一个线程从其启动例程返回。(5)最后一个线程调用
The_Hungry_Brain
·
2020-07-15 15:04
APUE
读书笔记
APUE
——Chapter 3:文件I/O
open、read、write、lseek、close。本章所说明的函数被称为不带缓冲的I/O(unbufferedI/O)。不带缓冲:指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数是POSIX.1和SingleUNIXSpecification的组成部分。所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用。系统内核对磁盘的读写都会提供
The_Hungry_Brain
·
2020-07-15 15:03
APUE
读书笔记
Notes for
Apue
—— chapter 4 Files and Directories(文件和目录)
4.1Introduction4.2stat,fstat,fstatat,andlstatFunctionsThelstatfunctionissimilartostat,butwhenthenamedfileisasymboliclink,lstatreturnsinformationaboutthesymboliclink,notthefilereferencedbythesymbolicli
diaolun4894
·
2020-07-15 14:03
[
apue
] Linux / Windows 系统上只能建立不超过 PATH_MAX / MAX_PATH 长度的路径吗?
问题的提出在处理文件系统路径的时候,我们一般会先开辟一块内存区,用来接收路径、或者拼接好路径传递给系统调用。这是因为路径在各个系统上都有最大长度限制,在Windows上这个值是MAX_PATH,一般不能超过260;在Linux上这个值是PATH_MAX,一般不能超过4096(或者通过pathconf(_PC_PATH_MAX,...)来获取,但是一般也是4096),就像下面这段典型的代码:1int
goodcitizen
·
2020-07-14 10:00
[
apue
] Linux / Windows 系统上只能建立不超过 PATH_MAX / MAX_PATH 长度的路径吗?
问题的提出在处理文件系统路径的时候,我们一般会先开辟一块内存区,用来接收路径、或者拼接好路径传递给系统调用。这是因为路径在各个系统上都有最大长度限制,在Windows上这个值是MAX_PATH,一般不能超过260;在Linux上这个值是PATH_MAX,一般不能超过4096(或者通过pathconf(_PC_PATH_MAX,...)来获取,但是一般也是4096),就像下面这段典型的代码:1int
goodcitizen
·
2020-07-14 10:00
linux 进程内存解析
之前我所了解的linux下进程的地址空间的布局的知识,是从
APUE
第2版的P430得来的,之后上网查了一些资料,大概弄了明白。
lile269
·
2020-07-13 07:25
Linux内核
Unix环境高级编程第三版源码编译错误
编译书本上的源代码遇到如下问题:1.systype.sh
apue
.3emakeforiinlibintrosocketsadviodaemonsdatafilesdbenvironfileiofilediripc1ipc2procptyrelationsignalsstandardsstdiotermiosthreadctlthreadsprinterexercises
JXES
·
2020-07-13 06:47
Linux系统编程
关于信号三种处理方式初步理解!
最近看
APUE
看到第十章信号,进程对信号的处理方式主要是三种:1.忽略2.终止3.捕获#include"
apue
.h"staticvoidsig_int(intsigno)/*argumentissignalnumber
易为
·
2020-07-12 02:06
Linux条件变量pthread_condition细节(为何先加锁,pthread_cond_wait为何先解锁,返回时又加锁)
这里我先列出
apue
中对于pthread_cond_wait函数的这么一段话:“调用者把锁住的互斥量传给函数,函数然后自动把调用线程放到等待条件的线程列表上,**对互斥量解锁。
LupinLeo
·
2020-07-11 22:06
C++
Linux
JAVA语言在控制台实现简单的注册登录注销操作;
importjava.util.HashMap;importjava.util.Map;importjava.util.Scanner;classPerson{M
apUe
r=newHashMap();inttip
凌
·
2020-07-11 17:45
java练手
pthread_cond_wait()用法分析
很久没看
APUE
,今天一位朋友问道关于一个mutex的问题,又翻到了以前讨论过的东西,为了不让自己忘记,把曾经的东西总结一下。
猫已经找不回了
·
2020-07-11 07:22
linux
深入解析条件变量(condition variables)
深入解析条件变量什么是条件变量(conditionvariables)引用
APUE
中的一句话:Conditionvariablesareanothersynchronizationmechanismavailabletothreads.Thesesynchronizationobjectsprovideaplaceforthreadstorendezvous.Whenusedwithmutexes
HarlanC
·
2020-07-10 18:22
重定向对格式化IO(printf)行缓冲的影响
今天在看
APUE
3进程章节的fork函数的时候,有一个例程中使用了格式化IO函数(printf),在输出到终端的时候只输出一次,但重定向到某个文件时,却由于子进程及缓冲更改的关系输出了两次。
SahPah
·
2020-07-10 16:52
Linux
linux
UNIX
重定向
行缓冲
格式化IO
探讨linux进程的三种时间(real time, system cpu time, user cpu time)的实现
APUE
3.9节中关于系统调用read给出了不同大小的缓冲区会导致读取效率的差异。这里stevens用三种时间表示读取文件过程所花费的时间。
http协议
·
2020-07-10 13:09
unix/linux
程序设计
Richard Stevens
RichardStevens理查德·史蒂文斯看到这个名字或许你会觉得很陌生,但是如果提及
APUE
,UNP,你应该就会明白:RichardStevens,便是这一系列Unix畅销书籍的作者!!!
J-zin
·
2020-07-10 09:45
软件工程导论作业
python读写命名管道
apue
里说匿名管道只能在父子进程里使用。
weixin_34034670
·
2020-07-10 08:36
Linux - 错误处理 代码(C)
代码:/*ByC.L.Wang*EclipseCDT*Ubuntu12.04*2014.10.5*/#include"
apue
.h"#include"error.h"#includein
SpikeKing
·
2020-07-10 04:16
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他