Advanced program in Unix
JasonLeaster
Doing is better than saying.
展开
-
《APUE》Chapter 9 Process relationships (学习笔记加上自己的代码)
Process RelationshipsTerminal LoginsUnix 是1971年开始的吧,但是这个terminal login的机制最起码30年没变过,嘿嘿。。。All the processes shown in Figure9.1 have a real user ID of 0 and an effective user ID of原创 2014-03-30 00:03:11 · 2266 阅读 · 0 评论 -
组合键ctrl+c ctrl+z ctrl+d ctrl+/ ctrl+s ctrl+q 的作用
http://noworry.blog.51cto.com/6223479/1133921linux下:ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。ctrl-转载 2014-03-24 11:21:41 · 5595 阅读 · 0 评论 -
open函数的返回值可能是0,1,2这三个中的任意一个吗?
今天纠结dup的时候,无意间发现,open的返回值让我有点不敢相信,百思不得其解。因为我不敢相信“返回值是0”,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,分别对应的是0,1,2这三个file descriptor问题出在下面这行代码上面 if(file_descriptor = open("./text.t",O_RDWR) < 0)原创 2014-02-15 16:08:42 · 8349 阅读 · 0 评论 -
进程和程序的区别 The relationship between process and program
遇到一个概念性的问题:程序和进程有什么区别?一个程序是代码和数据的集合。一个进程是程序执行时候的一个特殊实例。程序总是运行于一个进程之中。对于进程和程序概念性的区分对于理解fork函数和execl函数都是有很大帮助的。fork在相同的程序之中创建一个新的子进程,子进程具有父进程的很多性质,除了fork返回值不同PID不同两者的父进程不同父进程如果有文件锁,子进程不继原创 2014-03-29 10:50:40 · 2187 阅读 · 0 评论 -
dup2这家伙
在类Unix操作系统里面,。dup2和dup都通过系统调用来产生一份file descriptor 的拷贝。dup对我来说还很简单int dup(int filedes);dup2就有点犯迷糊了int dup2(int filedes1,int filedes2);其实这样declaration更好int dup2(int oldfd,int new原创 2014-02-15 16:44:44 · 1397 阅读 · 0 评论 -
《APUE》Chapter 3 File I/O(学习笔记加上自己的代码)
文件I/O在Unix系统中,文件I/O大多数的使用五大函数来实现:open,read,write,lseek 和close.术语unbuffered的意思是每个read或者write函数向内核请求一个系统调用对于内核而言,每一个打开的文件都有相应的file descriptors(非负整数).open 函数#includeint open(const cha原创 2014-02-04 22:57:51 · 1779 阅读 · 0 评论 -
《APUE》chapter 18 Terminal I/O 学习笔记(加上自己的代码)
《APUE》chapter 16 Network IPC: Sockets 学习笔记(加上自己的代码)(原创 2014-04-15 16:27:05 · 2281 阅读 · 0 评论 -
"I ask you, have you ever known what it is to be an orphan?"
/* * Determine if a process group is "orphaned", according to the POSIX * definition in 2.2.2.52. Orphaned process groups are not to be affected * by terminal-generated stop signals. Newly orp原创 2014-05-07 12:25:05 · 2032 阅读 · 0 评论 -
资源向导之 "APUE"
APUE --- Advanced programming in the unix environment这本书我看了好多遍....原因嘛, 第一次看到进程那里,看不懂了,前面基础没看好,从头再来第二次看到进程通信了,看不懂了,从头再来... ...估计看了四次,还是五次,忘记了,才看到第19章.感觉后面和网络编程就关系就没看了.老老实实一个个照着例原创 2014-12-22 16:59:06 · 2034 阅读 · 0 评论 -
signal 函数只能接受一次信号? The naughty signal function
The naughty signal functionsignal 函数的prototype: #include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);在练习是时候发现一个问原创 2014-03-31 12:14:25 · 4704 阅读 · 4 评论 -
简易的shell ---- MOS 的一个小练习题
想到自己的好多图片还有代码在上一次硬盘挂掉的时候丢失, 心中就是阵痛... 这个简单的shell代码被放在临时的pdf文档中得以被保留了下来... 阿门...今天想写个简单的数据库的时候, 感觉是不是要做个交互页面, 不让用户写程序, 模仿MySQL简单的命令, 用户傻瓜化就好了...交互的方式可以是shell. 其实中科院孟宁老师的一个OO课的前几课的一个小作业就是自己原创 2014-12-23 22:07:01 · 1363 阅读 · 0 评论 -
一个简易数据库的实现 ---- APUE chapter 20 A Database library
A Database library 我会说明天上午十点考数据库,我现在还在写博客... 什么心态 QAQ我还是忍不住吐槽, 那个数据库的课上的.... (此处省略一万五千字的感想)---------------------------------------------------原创 2014-12-24 03:02:48 · 2583 阅读 · 0 评论 -
byte oriented and wide oriented
byte oriented and wide orientedByte orientation refers to forms of data processing in which digital data are processed bytewise. For example, communication is called byte oriented or character原创 2014-03-24 09:08:18 · 2288 阅读 · 1 评论 -
《APUE》chapter 7 Process Environment 学习笔记(加上自己的代码)
Process EnvironmentEverything start here -- main Functionint main(int argc ,char *argv []);We are familiar with this guy... but I would like to repeat and write down my understanding about原创 2014-03-27 10:08:12 · 1663 阅读 · 0 评论 -
《APUE》chapter 6 System Data files and information 学习笔记(加上自己的代码)
System Data files and information原创 2014-03-25 18:01:24 · 2048 阅读 · 0 评论 -
《APUE》chapter 5 Standard I/O libary 学习笔记(加上自己的代码)
Standard I/O libary学习笔记+code原创 2014-03-25 11:26:28 · 1831 阅读 · 0 评论 -
APUE figure 11.12 勘误 关于死锁解决办法的代码错误
虽然我自己很不愿意面对这个事实。。。但是它就是错了,完全解释不通我把书中问题代码的源码放在blog最后,并和第三版APUE进行比较比较可以发现第二版中有这样一段代码和第三不一样第二版foo_find里面:foo_find(int id) /* find a existing object */{ struct foo *fp; int i原创 2014-04-03 13:19:53 · 2030 阅读 · 1 评论 -
《APUE》Chapter 10 Signals (学习笔记加上自己的代码)
Signalssignal is software exception !看源码绝对是一种享受.Programmer view the source code , something like detective find the truth!原创 2014-04-02 17:34:18 · 2994 阅读 · 0 评论 -
《APUE》chapter 11 Thread 学习笔记(加上自己的代码)
Thread All threads within a single process have access to the same process components, such as file descriptors and memoryThread Concepts原创 2014-04-03 14:59:00 · 2058 阅读 · 0 评论 -
《APUE》chapter 12 Thread control 学习笔记(加上自己的代码)
Thread control原创 2014-04-07 14:23:10 · 1867 阅读 · 0 评论 -
《APUE》chapter 13 Deamon Process 学习笔记(加上自己的代码)
Deamon Process Because they don’t have a controlling terminal, we say that they run in the background.原创 2014-04-07 20:05:47 · 1900 阅读 · 0 评论 -
《APUE》chapter 14 Advanced I/O 学习笔记(加上自己的代码)
Advanced I/O原创 2014-04-10 09:55:37 · 1943 阅读 · 0 评论 -
关于APUE里面TELL_WAIT()之类函数的两种实现方式
Just a note....#include static volatile sig_atomic_t sigflag;static sigset_t newmask,oldmask,zeromask;static void sig_usr(int signo){ sigflag = 1;}void TELL_原创 2014-04-11 20:43:33 · 2797 阅读 · 0 评论 -
《APUE》chapter 16 Network IPC: Sockets 学习笔记(加上自己的代码)
Network IPC: Sockets原创 2014-04-13 00:03:23 · 2318 阅读 · 0 评论 -
《APUE》chapter 15 Interprocess Communication 学习笔记(加上自己的代码)
Interprocess Communication原创 2014-04-10 17:20:41 · 1619 阅读 · 0 评论 -
《APUE》Chapter 8 Process control(学习笔记加上自己的代码)
Process ControlThis includes the creation of new processes, program execution, and process termination.Process Identifiers ---- PID(嘿嘿,和自控里面的不同哇。。。)Every process has a uni原创 2014-03-28 23:49:10 · 2752 阅读 · 0 评论 -
《APUE》Chapter 4 Files and directories (学习笔记加上自己的代码)
Files and directories整个第四章都是围绕着三个stat函数展开的#include int stat(const char *restrict pathname, struct stat *restrict buf);int fstat(int filedes, struct stat *buf);int lstat(const char *restrict pat原创 2014-03-23 17:29:25 · 2334 阅读 · 0 评论