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
自制小shell
有关shell的原理,可以从下面的代码看出来(摘自
APUE
)#include #include"
apue
.h" intmain(void){ charbuf[MAXLINE]; pid_tpid; intstatus
mtawaken
·
2014-07-20 22:00
第七章 进程环境 命令行参数
#include"
apue
.h" intmain(intargc,char*argv[]) { inti; for(i=0;i
hai836045106
·
2014-07-11 15:00
第七章 进程环境-进程终止
#include"
apue
.h" staticvoidmy_exit1(void); staticvoidmy_exit2(void)
hai836045106
·
2014-07-11 11:00
论条件变量cond_wait的原子性
使用的基本模板如下(参考
APUE
): signal代码序列如下, pthread_mutex_lock ...
·
2014-07-02 14:00
wait
apue
第七章 进程环境 笔记
7.2注册atexit函数看代码:#include#includestaticvoidexit1(){printf("%s\n",__FUNCTION__);}staticvoidexit2(){printf("%s\n",__FUNCTION__);}intmain(){if(atexit(exit1)!=0||atexit(exit2)!=0){printf("registerexitfaie
xiaolomg
·
2014-06-29 13:53
unix环境高级编程
linux 命令c语言代码实现
自己学习《
APUE
》时写的linux下一些命令(大概40个左右)实现,仅当学习使用,这些命令包括catcpechoheadlspastermdirtailumaskwhochattrcutexpandjoinmkdirpwdsedteeuniqchgrpdatefindlastmkfiforebootsortwcchmoddflnmvrenamesplittouchwhichchowndugrep
lufubo
·
2014-06-25 13:16
linux
shell
c语言
linux网络编程学习笔记之三 -----多进程并发服务端
首先是fork()函数,移步
APUE
8.3.比较清晰的解释可以参考http://blog.csdn.net/lingdxuyan/article/details/4993883和http://www.oschina.net
simon_夏
·
2014-06-11 19:16
Linux种种
网络编程
linux
多进程
apue
读书笔记【五】:文件IO(1) fileno open read write
一、文件描述符函数名称:fileno函数原型:int_fileno(FILE*stream);函数功能:用来取得指定的文件流所使用的文件描述符返回值:某个数据流的文件句柄头文件:stdio.hdemo:#includeintmain(){printf("thefiledescriptorforstdinis%d\n",fileno(stdin));printf("thefiledescriptor
誉儿
·
2014-06-08 12:38
apue读书笔记
由PHP底层工作原理说起
于是看了一些书,比较经典的有
apue
,unp,tcp/ip,nginx,mysql的innodb存储引擎,深入理解jvm。渐渐发现无论用什么语言做开发,背后都有linux,shell,c
ziqingfeng
·
2014-06-06 23:46
语言
并发服务器之高级IO
高级IO
APUE
第14章讲解了高级IO,主要有:非阻塞IO、IO多路转接技术:(select、poll),下面就简要就上述几个方面讲一讲个人观点。
deepRL
·
2014-05-30 21:00
linux
epoll
select
poll
并发服务器
高级IO
《UNIX环境高级编程》源码编译方法
uid=10167808&do=blog&id=25915最近在学习《UNIX环境高级编程》(AdvancedProgrammingintheUNIXEnvironment,简称
APUE
,以下使用简称)
xueyushenzhou
·
2014-05-23 14:00
编程
源码
unix
操作系统
Unix环境高级编程
Linux环境编程之进程(五):竞争条件以及exec函数
避免竞争的条件,给出
apue
上的一个代码吧:#include"
apue
.h" staticvoidcharatatime(char*); int main(void) { pid_tpid; TELL_WAIT
To_Be_IT_1
·
2014-05-15 10:00
竞争条件
exec函数
递归降序遍历目录层次结构
在学习
APUE
第4章时候,里面编写了一段递归顺序遍历目录层次的结构的代码,该代码实现了递归访问目录。但是该代码并没有显示降序的方式显示目录树。
a_1_2_ab
·
2014-05-12 09:00
APUE
习题16.4
服务端:#include #include #include #include #include #include #include #include #include #include #include #defineDIRNAME"/proc" #defineQUENUM8 #defineMAXSIZE16 structs_pronum{ intpronum; charpronumbuf[
tripleCC
·
2014-05-10 15:00
常见的文件和目录函数
在
APUE
这本书,第三章与第四章都是在讲一些关于文件操作和目录操作的函数。简单地说明一下涉及到的函数及其使用。
a_1_2_ab
·
2014-05-10 15:00
[置顶] 5月,献给程序员们的经典巨著——
APUE
五一小长假刚刚过去,收回我们游走的心,开始你们的读书旅程吧!本期特别推荐经典UNIX著作最新版。20多年来,这本书帮助几代程序员写出强大、高性能、可靠的代码。第3版根据当今主流系统进行更新,更具实用价值。《UNIX环境高级编程》(第3版)是被誉为UNIX编程“圣经”的AdvancedProgrammingintheUNIXEnvironment一书的第3版。在本书第2版出版后的8年中,UNIX行业
zuoninger
·
2014-05-10 14:00
僵尸进程与孤儿进程总结
晚上回来google了一下,再次参考
APUE
,认真总结一下,加深理解。2、基本概念我们知
JXH_123
·
2014-05-09 16:00
《UNIX环境高级编程》第二版源码在Ubuntu下的编译
1.在http://www.
apue
book.com下载源代码2.查看READroot@ubuntu:/home/wl/mywork/
apue
.2e#cat-nREADME 1ReadthefilecalledDISCLAIMER
hongkangwl
·
2014-05-08 19:00
编程
源码
linux
unix
ubuntu
APUE
文件和目录
pag71intstat(constchar*restrictpathname,structstat*restrictbuf);intfstat(intfiledes,structstat*buf);intlstat(constchar*restrictpathname,structstat*restrictbuf);(linkstat)lstat与stat类似,但是当命名的文件是一个符号链接时,
tripleCC
·
2014-04-30 18:00
对于终端的理解
看
APUE
时对里面的多种终端概念不是很理解,百度了下自己写的程序:#include
tripleCC
·
2014-04-30 18:00
APUE
系统文件和信息
pag133这里的各类ID都是针对用户的口令文件:/etc/passwd文件中的字段(linux)(structpasswd的成员)用户名---------------------------char*pw_name加密口令------------------------char*pw_passwd数值用户ID---------------------uid_tpw_uid数值组ID-------
tripleCC
·
2014-04-30 18:00
APUE
文件IO
文件描述符0 标准输入(STDIN_FILENO)1 标准输出(STDOUT_FILENO)2 标准出错(STDERR_FILENO)pag48intopen(constchar*pathname,intflag,...);//打开或创建一个文件仅当创建一个文件时才使用第三个参数
tripleCC
·
2014-04-30 18:00
APUE
习题10-6
这题虽然看起来简单,但是做的时候还是遇到了些问题贴码:#include #include #include #include #include #include #defineMAXSIZE100 sigset_tzeromask,maskset,oldmask; staticvoid sig_handler(intsigno) { } void SYNC_INIT(void) { str
tripleCC
·
2014-04-30 18:00
APUE
高级IO
pag355低速系统调用:1、某些文件类型(管道、终端设备、网络设备)的数据并不存在,则读操作可能会使调用者永远阻塞。2、数据不能立即被上诉同样类型的文件接受(由于在管道中无空间、网络流控制等),则写操作也会使调用者永远阻塞3、在某种条件发生之前,打开某些类型的文件会被阻塞4、对已加上强制性记录锁的文件进行读写5、某些ioctl操作6、某些进程间通信函数虽然读写磁盘文件会使调用者在短暂时间内阻塞,
tripleCC
·
2014-04-30 18:00
APUE
进程关系
pag214登录简易流程:init进程fork子进程exec执行gettygetty开启终端设备以便输入,显示Login:用户输入用户名getty程序exec执行login程序login由用户名(getpwnam)获取pw结构,显示Password:用户输入密码login程序比对pw结构中pw_passwdpag218进程组使一个或多个进程的集合,通常他们与同一作业相关联,可以接收来自统一终端的各
tripleCC
·
2014-04-30 18:00
APUE
进程环境
pag147main执行前:调用一个特殊的启动例程可执行程序文件将此启动例程指定为程序的起始地址启动例程从内核取得命令行参数和环境变量值voidexit(intstatus);void_Exit(intstatus);void_exit(intstatus);_exit和_Exit立刻进入内核,exit则先执行一些清理处理,然后进入内核。echo$?打印终止状态intatexit(void(*fu
tripleCC
·
2014-04-30 18:00
APUE
进程间通信
pag398管道:局限:只能在具有公共祖先的进程之间使用。通常由一个进程创建然后该进程调用fork,此后父子进程之间就可应用该管道。intpipe(intfiledes[2]);经由参数返回两个文件描述符:filedes[0]为读而打开,filedes[1]为写打开。filedes[1]的输出就是filedes[0]的输入。通常将管道描述符复制为标准输入和标准输出。在此之后通常子进程执行另一个程序
tripleCC
·
2014-04-30 18:00
APUE
信号
pag233信号都被定义为正整数。不存在编号为0的信号。不能捕捉SIGKILL和SIGSTOP信号。信号的处理:1,忽略信号2,捕捉信号3,执行系统默认动作(大多数信号默认动作时终止进程)void(*signal(intsigno,void(*fun)(int)))(int)fun:1、SIG_IGN 忽略信号2、SIG_DFL默认(通常时关闭)3、调用函数地址缺点:不改变信号的处理方式就不能确定
tripleCC
·
2014-04-30 18:00
APUE
线程控制
pag314intpthread_attr_init(pthread_attr_t*attr) //初始化pthread_attr_t结构intpthread_attr_destroy(pthread_attr_t*attr)//去初始化;释放动态内存;用无效的值初始化属性对象(被误用会导致pthread_create函数返回错误)分离线程:线程函数完成后,OS将其资源自动收回不分离线程:如果不调
tripleCC
·
2014-04-30 18:00
APUE
套接字
pag437套接字描述符在unix系统是用文件描述符实现的。intsocket(intdomain,inttype,intprotocol);//创建套接字数据报(SOCK_DGRAM)接口,与对方通信时是不需要逻辑连接的(UDP)。只需要送出一个报文,其地址是一个对方进程所使用的套接字。(无连接)字节流(SOCK_STREAM)要求在交换数据之前(TCP),在本地套接字和与之通信的远程套接字之间
tripleCC
·
2014-04-30 18:00
APUE
线程
pag288进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。进程ID在整个系统中是唯一的,线程ID只在他所属的进程环境中有效。intpthread_equal(pthread_ttid1,pthread_ttid2);//比较线程IDpthread_tpthread_self(void);//获得自身线程IDintpthread_crea
tripleCC
·
2014-04-30 18:00
APUE
标准IO
pag111流定向决定了所读、写的字符是单字节还是多字节的。intfwide(FILE*fp,intmode);//设置流定向文件描述符:STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO文件指针:stdin、stdout、stderr默认缓冲机制标准出错---------------------不带缓冲终端设备流------------------行缓冲其他流---
tripleCC
·
2014-04-30 18:00
进程相关ID
最近温习
APUE
(《高级UNIX环境编程》》),),终于对这两个概念有了一个清晰的认识,看来经典著作绝对需要温习多遍,才能领略其中的奥秘。
tripleCC
·
2014-04-30 18:00
APUE
进程控制
pag171ID-----0 通常为调度进程,常常被称为交换进程,不执行任何磁盘上的程序,也被称为系统进程。ID-----1 通常为init进程,通常读与系统有关的初始化文件,并将系统引导到一个状态,init进程绝不会终止。(普通用户进程(与交换进程不同,不是内核中的系统进程),但以超级用户特权运行)pid_tgetpid(void);//进程IDpid_tgetppid(
tripleCC
·
2014-04-30 18:00
APUE
守护进程
pag341守护进程也称精灵进程,时生存期较长的一种进程。他们常常在系统自举时启动,仅在系统关闭时终止。因为没有控制终端,所以说他们时咋后台运行的。父进程为0的各进程通常是内核进程,他们作为系统自举过程的一部分而启动。(init是此种进程的例外他是内核在自举时启动的用户层命令)大多数守护进程都以超级用户(用户ID为0)特权运行。没有一个守护进程具有控制终端,其终端名设置为问号(?),终端前台进程组
tripleCC
·
2014-04-30 18:00
APUE
文件和目录
pag72目录文件:包含其他文件的名字以及指向与这些文件有关信息的指针。(知道目录也时文件)intstat(constchar*restrictpathname,structstat*restrictbuf);intfstat(intfiledes,structstat*buf);intlstat(constchar*restrictpathname,structstat*restrictbuf)
tripleCC
·
2014-04-30 18:00
linux 设置用户id 设置组id
最近看
apue
,简单记录对设置用户id理解(设置组id同理)。 1.相关的id好像很多,共有哪些?
google了谁
·
2014-04-24 00:00
linux
设置用户ID
有效用户id
fork与Vfork比较
函数:fork后,子进程获得父进程的数据空间、堆、栈、其缓冲区的副本(但由于在fork之后经常跟随着exec,所以现实的很多实现并不执行父进程的数据段、栈和堆的完全复制)代码说明: #include "
apue
.h
突然帅了
·
2014-04-21 21:00
APUE
限制
long sysconf (intname);long pathconf (constchar*pathname,intname);long fpathconf (intfiledes,intname);守护进程:在后台运行且不与终端相连的一种进程。常常在系统自举时启动,仅在系统关闭时才停止。
tripleCC
·
2014-04-20 09:00
使用dup和dup2重定向和还原
其实这个
APUE
上有讲这个两个函数,但是说的太标准了
kangear
·
2014-04-19 11:00
重定向
dup
[
APUE
] 可重入性与线程安全
1概念可重入性是指多个线程调用时,不用担心数据丢失和程序数据损坏。线程安全是指一个函数可以被多个线程安全地调用。2不同点线程安全只需要考虑多个线程调用某个函数时,结果跟单线程调用该函数的结果一样。而可重入需要考虑各方面的因素,主要就是信号带来的影响。当一个函数在执行时被信号打断了,就会去执行信号处理函数,函数当然不知道信号处理函数中会调用什么代码,那么,信号处理函数的代码的执行可能会对函数本身的执
luofengmacheng
·
2014-04-18 20:36
Ubuntu12.10 无法启动
Ubuntu12.10系统升级导致无法启动 这几天在学习
apue
,使用linux系统的频率变高了,我安装的是Ubuntu12.10,系统一直提示我把内核更新到更高的版本,起初我直接忽视,后来每次启动
xuzewei_2
·
2014-04-16 10:00
ubuntu
《
APUE
》chapter 18 Terminal I/O 学习笔记(加上自己的代码)
TerminalI/O OverviewTerminalI/Ohastwomodes:1. Canonicalmodeinputprocessing. Inthismode,terminalinputisprocessedas lines. Theterminaldriverreturnsatmostonelineperreadrequest.2. Noncanonicalmode input p
u011368821
·
2014-04-15 16:00
api
System
operating
《
APUE
》chapter 16 Network IPC: Sockets 学习笔记(加上自己的代码)
NetworkIPC:Sockets Inthis chapter,welook at the mechanisms that allow processes runningondifferentcomputers(connectedtoacommonnetwork)tocommunicatewith oneanother—networkIPC.Socket DescriptorsAsocke
u011368821
·
2014-04-13 00:00
linux
api
System
operating
关于
APUE
里面TELL_WAIT()之类函数的两种实现方式
Justanote....implementationbysignal#include staticvolatilesig_atomic_tsigflag; staticsigset_tnewmask,oldmask,zeromask; staticvoidsig_usr(intsigno) { sigflag=1; } voidTELL_WAIT(void) { structsigact
u011368821
·
2014-04-11 20:00
多线程
linux
api
《
APUE
》chapter 15 Interprocess Communication 学习笔记(加上自己的代码)
InterprocessCommunicationPipesPipeshavetwolimitations.1. Historically,they have been half duplex (i.e., data flows in only one direction). Somesystemsnowprovidefull-duplexpipes,butformaximumportabilit
u011368821
·
2014-04-10 17:00
linux
api
《
APUE
》chapter 14 Advanced I/O 学习笔记(加上自己的代码)
AdvancedI/ONonblocking I/OThe slow system calls arethose that can block forever.They include•Readsthatcanblockthecallerforeverifdataisn’tpresentwithcertainfiletypes (pipes,terminaldevices,andnetworkde
u011368821
·
2014-04-10 09:00
linux
api
IO
《
APUE
》chapter 13 Deamon Process 学习笔记(加上自己的代码)
DeamonProcess Becausetheydon’t have a controlling terminal, we say that they run in the background.DaemonCharacteristicssome common system daemons and how they relate to the concepts of processgroupsl
u011368821
·
2014-04-07 20:00
linux
api
System
operating
《
APUE
》chapter 12 Thread control 学习笔记(加上自己的代码)
ThreadcontrolThreadLimitsThreadAttributesthefunctionsformanagingtheseattributesfollowthesamepattern:1. Eachobject is associated with its own type of attribute object (threads with threadattributes,mut
u011368821
·
2014-04-07 14:00
linux
api
mongodb的mapreduce使用
先插入数据,插入的数据如下> db.books.find() { "_id" : ObjectId("533ee1e8634249165a819cd0"), "name" : "
apue
", "pagenum
flyking
·
2014-04-05 01:00
mapreduce
mongodb
上一页
23
24
25
26
27
28
29
30
下一页
按字母分类:
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
其他