博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271
1、解压至/home/user/目录下 2、修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e ...3、然后再进入apue.2e目录下的std目录,打开linux.mk,将里面的nawk全部替换为awk,可以使用这个命令 :%s/nawk/awk/g 4、把 /home/limeng/apue...5、把 /home/limeng/apue.2e/lib目录下的 error.c 文件第一行 #include "apue.h"注释掉或者删除,也将该文件拷贝到/usr/include 目录中。 ...然后就可以方便的使用apue.h编译《unix高级环境编程》的的程序了。...apue.h内容如下: 1 #ifndef _APUE_H 2 #define _APUE_H 3 4 #define _XOPEN_SOURCE
在UNIX环境高级编程(APUE)中提到了守护进程的创建方法,思路很清晰,所以这里通过代码具体研究下。 1 完整程序:单实例守护进程 根据APUE的介绍,创建守护进程基本需要如下7个步骤。...daemon_process.c * @Describe A simple example for creating a single object of daemon process in linux...apuesingledaemonprocess.html * @Compile gcc daemon_process.c -o daemon_process * @Reference program list 13-1 in APUE...\n" ); while(1) sleep(120); return 0; } 2 程序编译 使用《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile...level(LOG_EMERG、LOG_ERR、LOG_WARNING等)和日志文件类型facility(LOG_CRON、LOG_MAIL、LOG_SYSLOG和默认的LOG_USER等)把进程的内容输出到Linux
把系统分区从 windows 重装成 linux,数据分区也能正常读取 (linux 也能识别 NTFS),说明文件系统是独立于操作系统的。...关于文件权限,这是另一个可以单独写一篇的话题了,请参考文章《[apue] linux 文件访问权限那些事儿》。...linux 文件系统的引入,后面有机会可以出一篇文章,专门阅读 linux 源码来证实本文的一些结论,想想就让人激动~~ 参考 [1]. ...APUE—UNIX文件系统 [9]. 文件atime未变问题的研究 [10]. Linux下查看和修改文件时间 [11]. Linux中8个有用的touch命令 [12]. ...准确获取linux文件的创建时间 [13]. Inode vs Vnode [14]. Linux调试分析诊断利器——strace [15].
看来有的人还是对schema的真正含义不太理解,如今我再次整理了一下,希望对大家有所帮助。
中实际上文件名都是障眼法,真正起作用的是一个叫做i-node号的玩意,多个文件名可以对应同一个i-node号,Linux是先根据文件名获取到其对应的i-node号,然后根据i-node号就可以在「i节点...真正完整的内容参考APUE第91页至95页,大概是这样shai儿的: ?...最后推荐大家补充一下关于Linux文件系统的相关知识点,相信各位都擅长使用搜索引擎以及优质的提问或搜索方式。...补充下上次感受到「APUE满满恶意」时候的那篇文章: 老李大战PHP之file_put_contents 我每次觉得自己读懂APUE的时候,他总是会肆无忌惮在任意时间和地点狠狠地打我一次脸。...「如果你觉得你已经读懂了APUE,那你一定是读错了」
List all the files in a directory #include "apue.h" #include int main(int argc, char *argv...List all the files in a directory #include "apue.h" #define BUFFSIZE 4096 int main(void) { int...Print the process ID #include "apue.h" int main(void) { printf("hello world from process ID %d\n"...我们需要提供自编的函数来处理它 10 系统调用与库函数 系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。...fd是一个整型值,每新打开一个文件,所获得的fd为当前最大fd加1(Linux系统默认分配了3个文件描述符值:0-standard input,1-standard output,2-standard
/apue.h 7 gcc -Wall -g -c $< -o $@ 8 9 print_iflag.o: print_iflag.c ...../apue.h 10 gcc -Wall -g -c $< -o $@ 11 12 print_iflag.c: print_flag.awk iflag.sym 13 ..../apue.h 16 gcc -Wall -g -c $< -o $@ 17 18 print_oflag.c: print_flag.awk oflag.sym 19 ..../log.h 40 gcc -Wall -g -c $< -o $@ 41 42 apue.o: ../apue.c .....检查打印的特殊字符,发现少了下标为 5 / 6 / 7 的字符,查看头文件定义,原来是 linux 上面增加了三个新的定义: cchar.sym VTIME VMIN VSWTC 将它们添加到 sym
设置/获取文件状态标志 F_GETFL (void) F_SETFL (long) 获取/设置文件锁 F_GETLK F_SETLK,F_SETLKW 其中复制文件描述符可参见《linux.../APUE/File_IO$ ..../APUE/File_IO$ ..../APUE/File_IO$ ....参考:《APUE》
/APUE/signal$ ..../sigqueue_recv 再ps出recv进程的pid,然后运行send程序: simba@ubuntu:~/Documents/code/linux_programming/APUE/signal.../APUE/signal$ ..../sigrtime_recv2 接着ps出recv进程的pid,运行send程序: simba@ubuntu:~/Documents/code/linux_programming/APUE/signal...参考:《APUE》
From github.com:goodpaperman/apue 86b80d3..e0cc835 master -> origin/master Updating 386fd43.....To git@github.com:goodpaperman/apue.git 8560ad0..0d3c3c7 master -> master start pushing git 1 spawn...与终端相关的内容,可以参考我之前写的这篇文章:[apue] 书中关于伪终端的一个纰漏 参考 [1]....Linux-expect命令详解 [2]. expect用法 [3]. expect语法基础: while、for 循环、if 语句的用法示例 [4]. expect(spawn) 自动化git提交和scp...拷贝---centos(linux)
对于Linux环境的获取,我们通常有两种方式: 将电脑整体安装为Linux系统; 在电脑里安装一个虚拟机,跑Linux电脑; Window+Linux双系统。...得到Linux环境后还不够,还要知道如何配置、如何远程连接Linux电脑、如何与Linux电脑互传文件、如何在主机上阅读Linux电脑中的代码,等等。 2....Linux应用编程书籍推荐: UNIX环境高级编程。简称APUE,号称程序员的圣经。它不是一本API字典,它还讲述了很多操作系统的细节,内存,文件系统等方面,是一本难得的好书。...Linux程序设计。如果觉得APUE有点难入门的话,可以选择此书进行入门。 Unix/Linux系统编程手册。...这本书号称是一本超越APUE的书,它是一本比较新的书,里面新增了APUE所没有的Linux/Unix新特性。而且对于一些概念性的东西讲的确实比APUE好。但至于能否超载APUE,还有待历史的考验。
getppid()); write(fd, "child", 5); } return 0; } 测试输出如下: simba@ubuntu:~/Documents/code/linux_programming.../APUE/process$ ....pid=2572 child pid=2573 this is child child pid=2573 parent pid=2572 simba@ubuntu:~/Documents/code/linux_programming.../APUE/process$ cat test.txt parentchild simba@ubuntu:~/Documents/code/linux_programming/APUE/process...参考:《APUE》
/APUE/signal$ ..../kill recv a sig=10 recv a sig=10 simba@ubuntu:~/Documents/code/linux_programming/APUE/signal$ .../APUE/signal$ ....而如上程序所示的话,输出为simba@ubuntu:~/Documents/code/linux_programming/APUE/signal$ ....参考:《APUE》
这套接口的实现愿景是为了能够更快的搭建一套基于Posix接口的通用物联网3D打印框架而服务的,而这套框架将无差别的兼容全平台,无论是Linux、Win32还是Mcu等等,它都能够顺利运行;因此,我们需要去实现一些通用的轮子...因此在最初的选择是先基于Linux应用开发,先将常用的、通用的接口进行封装和实现,然后再开始设计业务逻辑和时序,最后调试整个系统。...目前这套Linux应用API轮子分为21个大类,后续还会根据需求继续增加,开源项目地址: https://github.com/Yangyuanxin/Linux_APUE https://gitee.com.../morixinguan/Linux_APUE 项目是基于CMake构建,整体的统一编码风格是基于大驼峰。.../gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++) 添加对应的交叉编译器即可。
simba@ubuntu:~/Documents/code/linux_programming/APUE/pipe$ ..../APUE/pipe$ ..../APUE/pipe$ ..../APUE/pipe$ ....参考:《APUE》
在linux上的命令tty 也可以查看到当前的终端。 比如我们在图形界面下打开一个终端可能是/dev/pts/0, 第二个可能是/dev/pts/1 ......例如用以下命令启动5个进程(这个例子出自APUE): $ proc1 | proc2 & $ proc3 | proc4 | proc5 其中proc1和proc2属于同一个后台进程组,proc3.../APUE/process$ ..../daemon simba@ubuntu:~/Documents/code/linux_programming/APUE/process$ ps axj PPID PID PGID SID...c 编程一站式学习》、《APUE》
很多同学接触linux不多,对linux平台的开发更是一无所知。...接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看, 看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强, 你可以在面试时说服所有的考官...(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分, Google创始人的案头书籍,扎尔伯克的床头读物。) ...如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术, 世界顶级黑客将同你分享他的看法。 ...我的看法是以下面的顺序来看书: APUE再深读 – 尤其是进程,线程,IPC,套接字 多核程序设计 - Pthread一定得吃透了,你很NB UNIX网络编程 – 卷一,卷二 TCP/IP
存储空间布局 直接上图: 上面是一种典型的内存排布,只是举个例子,并不代表所有平台和架构都以此这种方式安排其存储空间,图中的内存地址更是以 Linux x86 处理器为例的。.../envpos 设置 HOME 变量,虽然新值长度小于旧值,这里仍然为新值在堆上分配了空间,看起来 linux 上的实现偷懒了。.../apue.h gcc -Wall -g -c $< -o $@ -std=c99 jumpvar_opt: jumpvar_opt.o apue.o gcc -Wall -g $^ -o...This GDB was configured as "x86_64-redhat-linux-gnu"...."/home/users/yunhai01/code/apue/07.chapter/.
现在介绍Linux发行版的知识。 正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释, 我也没时间。...接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看, 看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强, 你可以在面试时说服所有的考官...(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分, Google创始人的案头书籍,扎尔伯克的床头读物。)...如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术, 世界顶级黑客将同你分享他的看法。...我的看法是以下面的顺序来看书: APUE再深读 – 尤其是进程,线程,IPC,套接字 多核程序设计 - Pthread一定得吃透了,你很NB UNIX网络编程 – 卷一,卷二 TCP/IP网络详解 –
领取专属 10元无门槛券
手把手带您无忧上云