随笔分类 - 【UNIX环境高级编程学习笔记】
摘要:本文转载自:http://blog.csdn.net/roland_sun/article/details/50266565 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 在Linux系统中,有很多进程间通信方式,套接字(Socket)就
阅读全文
摘要:本文转载自:http://blog.csdn.net/guxch/article/details/7041052 一、 概述 UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等
阅读全文
摘要:本文转载自:http://blog.csdn.net/dragon_li_chen/article/details/17147911 一、文件锁的分类: 翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰
阅读全文
摘要:本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一、文件锁 文件锁用于多个用户共同使用或操作同一个文件。有读锁的时候可以再加读锁,不能再加写锁。有写锁的时候,不能加任何锁,加读锁时,该描述符必须是读打开,加写锁时,该描述符必须是
阅读全文
摘要:本文转载自:http://blog.csdn.net/dlutbrucezhang/article/details/9212067 Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。 在这个链表中,有两种数据结构:等待队列头(wait_
阅读全文
摘要:1 #include "apue.h" 2 3 int globvar = 6; 4 5 int main(void) 6 { 7 int var; 8 pid_t pid; 9 10 var = 88; 11 printf("before vfork\r\n"); 12 if((pid = vfork()) < 0){ 13 ...
阅读全文
摘要:1 #include "apue.h" 2 3 int globvar = 6; 4 char buf[] = "a write to stdout\r\n"; 5 6 7 int main(void) 8 { 9 int var; 10 pid_t pid; 11 12 var = 88; 13 if(write(STDOUT_FILE...
阅读全文
摘要:1 #include "apue.h" 2 3 #define TOK_ADD 5 4 5 void do_line(char *); 6 void cmd_add(void); 7 int get_token(void); 8 9 int 10 main(void) 11 { 12 char line[MAXLINE]; 13 ...
阅读全文
摘要:1 #include "apue.h" 2 3 static void my_exit1(void); 4 static void my_exit2(void); 5 6 7 int main(void) 8 { 9 int ret = -1; 10 11 ret = atexit(my_exit2); 12 if(ret != 0) 13 ...
阅读全文
摘要:1 #include "apue.h" 2 #include 3 4 int main(void) 5 { 6 if(chdir("/home/zsf/book/unix/source_code/apue.3e/mycode/test") < 0) 7 err_sys("chdir failed"); 8 printf("success chd...
阅读全文
摘要:1 #include "apue.h" 2 #include 3 4 int main(int argc,char *argv[]) 5 { 6 7 int i,fd; 8 struct stat statbuf; 9 struct timespec times[2]; 10 11 for(i = 1;i < argc;i ++){ 1...
阅读全文
摘要:1 #include "apue.h" 2 #include 3 4 int main(void) 5 { 6 if(open("tempfile",O_RDWR) < 0) 7 err_sys("open error"); 8 if(unlink("tempfile") < 0) 9 err_sys("unlink erro...
阅读全文
摘要:1 #include "apue.h" 2 3 4 int main(int argc,char *argv[]) 5 { 6 struct stat stabuf; 7 8 if(stat("zbzhuang",&stabuf) < 0) 9 err_sys("stat error for foo"); 10 if(chmod("...
阅读全文
摘要:1 #include "apue.h" 2 #include 3 4 #define RWRWRW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) 5 6 int main(int argc,char *argv[]) 7 { 8 umask(0); 9 if(creat("zbzhuang",RW...
阅读全文
摘要:1 #include "apue.h" 2 #include 3 4 5 int main(int argc,char **argv) 6 { 7 if(argc != 2) 8 err_quit("usage:a.out "); 9 if(access(argv[1],R_OK) < 0) 10 err_ret("acce...
阅读全文
摘要:通过lstat函数获取文件的类型的代码如下。 执行文件之后的显示结果如下:通过lstat函数可以正确的获取文件的类型
阅读全文
摘要:本文基于unix环境高级编程的学习的笔记,写的比较简如有不对,欢迎指点。 简单的描述下面函数的功能改变ctr+c信号原本的作用终止程序,在按下中断键的时候输出一句话。 while循环主要读取用户的输入,根据用户的输入解析输入的命令之后调用exec函数执行命令 运行情况如下: 1.10
阅读全文
摘要:本文转载自:http://www.cnblogs.com/52php/p/5681701.html 操作系统:Ubuntu 12/14 1、下载书中的源代码:点击下载 2、编译 1 2 3 tar -zxvf *.tar.gz cd ./apue.3e make 1 2 3 tar -zxvf *.
阅读全文
摘要:本文转载自:http://www.cnblogs.com/nufangrensheng/p/3507968.html 每个程序都会接收到一张环境表。与参数表一样,环境表也是一个字符指针数组,其中每个指针包含一个以null结束的C字符串的地址。全局变量environ则包含了该指针数组的地址: 例如,如
阅读全文