setvbuf
摘要:【setvbuf】 函数名:setvbuf 功 能: 把缓冲区与流相关 用 法:int setvbuf(FILE *stream, char *buf, int type, unsigned size); 参数:stream :指向流的指针; buf : 期望缓冲区的地址; type : 期望缓冲区的类型: _IOFBF(满缓冲):当缓冲区为空时,从流读入数据。或者当缓冲区满时,向流写入数据。 _IOLBF(行缓冲):每次从流中读入一行数据或向流中写入一行数据。 _IONBF(无缓冲):直接从流中读入数据或直接向流中写入数据,而没有...
阅读全文
blocking network call
摘要:[blocking network call] 阻塞的网络调用: 1、gethostbyname(): does not return until it has succeeded or failed in resolving www.xxx.com 2、connect(): does not...
阅读全文
cp & scp
摘要:[cp & scp]Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同。cp --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件scp --- 主要是在不同的Linux系统之间来回copy文件关于cp的具体用法:命令基本格式: cp [OPTIONS]SOURCE DEST --- 从源路径copy文件到目的路径 cp [OPTIONS]SOURCE... DIRECTORY --- 将多个源文件copy到指定的目录(多个源文件用空格分隔)OPTIONS:-a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以
阅读全文
wait&waitpid状态值
摘要:[wait&waitpid状态值] 1. python 中 os.system 的返回值的format与wait的返回值status一致: On Unix, the return value is the exit status of the process encoded in the format specified forwait() os.system直到命令进程执行完毕才返回, SIGSTOP把子进程暂停, os.system也依旧阻塞 2. os.wait的返回值, 在不同的情况下有不同的含意, 需通过 头文件中的宏来操作 3. 若waitpid加入了WNOHAN...
阅读全文
socket & pipe note
摘要:【socket & pipe note】 1、socket类型 2、大小端 3、socketpair 如何创建全双工管道? 直接的办法当然是pipe两次,创建两组管道,但是有没有更简单的呢? socketpair就可以了,man socketpair: socketpair - create a pair of connected sockets, The two sockets are indistinguishable,也就是说,用socketpair创建出来的两个描述符应该是等价的。 4、fifo 5、popen & pclose 6、对...
阅读全文
open中的mode
摘要:【open中的mode】 当使用O_CREAT标志的open来创建文件时,我们必须使用三个参数格式的open调用。第三个参数mode 是几个标志按位OR后得到的。他们是:S_IRUSR: 读权限,文件属主。S_IWUSR:写权限,文件属主。S_IXUSR:执行权限,文件属主。S_IRGRP:读权限,文件所属组。S_IWGRP:写权限,文件所属组。 。。。。 请看下面例子: open("myfile", O_CREAT, S_IRUSR|S_IXOTH ; 他的作用是创建一个名为myfile 的文件,文件属主拥有读权限,其他用户拥有执行权限,且只有这些权限。
阅读全文
Unix高级编程Note3
摘要:【Unix高级编程Note3】 1、RECURSIVE锁可以递归,普通锁只会死锁 2、线程安全函数 3、线程私有数据 4、pthread_once 5、线程取消点 6、线程信号 7、pread 8、daemonize
阅读全文
Unix高级编程Note2
摘要:【Unix Note2】 1、信号屏蔽 2、信号不会排队,即产生同时产生10次,会被合并为1次。 3、sigsuspend,sigsuspend后,进程就挂在那里,等待着开放的信号的唤醒。系统在接收到信号后,马上就把现在的信号集还原为原来的,然后调用处理函数。 4、abort 5、进程ID 6、线程清理程序 7、process & thread 原语对比 8、读写锁 9、条件变量
阅读全文
Unix高级编程Note1
摘要:【Unix Notes】 1、/etc/passwd 2、extern int errno; 3、限制, limit.h 4、文件原子操作:O_EXCL & O_CREAT 5、stat操作 6、st_mode也包括了针对权限的位。 7、symlink&readlink 8、读目录 9、环境表 10、wait & waitpid 状态 11、system
阅读全文
access
摘要:【access】 表头文件#include 定义函数int access(const char * pathname, int mode); 函数说明access()会检查真实用户是否有权限读/写某一已存在的文件。参数mode有几种情况组合, R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则是用来判断该文件是否存在。参考:http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html
阅读全文
FD_CLOEXEC
摘要:【FD_CLOEXEC】 通过fcntl设置FD_CLOEXEC标志有什么用? close on exec, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。
阅读全文
fork后父子进程文件描述问题
摘要:【fork后父子进程文件描述问题】 一张图可以浅析的解释: 参考:http://wenku.baidu.com/view/dd51581bff00bed5b9f31d8e.html
阅读全文
信号
摘要:[信号] SIGTSTP和SIGSTOP的唯一区别: 将进程暂停是SIGTSTP的默认action,用户可以自定义一其handler,而将进程暂停是SIGSTOP的定死的action,用户不能修改。此外,二者没什么差别,都使用SIGCONT来讲进程重新激活。SIGKILL和SIGSTOP的区别 SIGKILL提供给管理员杀死进程的权利, SIGSTOP提供给管理员暂停进程的权利, 所以这两个信号不能被忽略和重定义。 Kill父进程后, 子进程的父进程号为1; 但是stop父进程后子进程的父进程号还是该父进程, 一个是杀死, 一个是暂停SIGINT :信号被当前进程树接收到,也就是说,不...
阅读全文
kill
摘要:[kill] linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到 1 #define SIGHUP 1 /* Hangup (POSIX). */ 2 #define SIGINT 2 /* Interrupt (ANSI). */ 3 #define SIGQUIT 3 /* Quit (POSIX). */ 4 #define SIGILL 4 /* Illegal instruction (ANSI). */ 5 #defi...
阅读全文
进程组&Session
摘要:[进程组] 1. getpgrp(), getpgid(0) 可获取进程组id, 进程组长的pid等于pgid. 如果进程组长exit, 则进程组依旧存在, 组内其它进程的组ID仍然是之前的ID, 即不存在进程组长了. 2. fork()一个子进程后,子进程的组ID为父进程的组ID. 可以通过setpgid()来更改. 3. shell 中执行一个后台命令, 则会创建一个进程&进程组 4. shell 中执行一个前台命令, 则会创建一个进程&进程组, 如果有管道, 则所有的管道命令在同一个进程组 5. 一个终端所有的前后台进程组的进程都有一个session中, 拥有相同的ses
阅读全文
查看用户终端
摘要:[查看用户终端]1、只查看当前终端的可以使用如下两个命令:tty 和 who am i其中who am i仅显示当前用户正使用的终端和登录时间如下图所示:2、查看所有终端1.命令w的功能最全面,能显示用户登录名、终端标志、星期几登录和具体登录时间、闲置时间、用户正在执行的程序、占用CPU时间、系统的运行时间和平均负载,例如:[root@AaronWong dev]# w 19:06:44 up 8:16, 2 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE J...
阅读全文
linux进程的几个状态
摘要:[linux进程的几个状态]1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态)2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal3. Linux进程状态:D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态, 可处理signal, 有延迟4. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态, 不可处理signal, 因为根本没有时间片运行代码5. Linux进程状态:Z (TASK_DEAD
阅读全文
ps命令
摘要:[ps命令] man上写到,使用ax/axu来查看当前系统上所有的进程. 其中, 单独使用a意味着列出所有与terminal关联的进程, 与x组合,则意味着显示本机所有进程. this option causes ps to list all processes with a terminal (tty), or to listall processes when used together with the x option. 另外, 单独使用x意味着列出你的所有进程, 与a组合,则意味着显示本机所有进程. this option causes ps to list a...
阅读全文
open File Browser in shell
摘要:【maxosx】1 open /usr/include【ubuntu】 发现三个,如下: xdg-open xxxx.pdf gnome-open . nautilus . 喜欢把它alias一下 .bashrc alias openpdf='xdg-open' alias nautilus='opendir' 转自:http://dongyulong.blog.51cto.com/1451604/426694
阅读全文
Frequently Used Shell Commands
摘要:【Common Use Shell Commands】 1、ps aux:查看当前所有进程 ,以用户名为主键。可以查看到 USER、PID、COMMAND(binary所有位置) 2、netstat -an:查看当前所有socket连接。可以查看到 Proto(tcp4/udp4)、LocalAdd...
阅读全文