APUE
文章平均质量分 72
longyu_wlz
在写作、音乐、linux 海滩旁捡拾贝壳的小男孩
展开
-
什么是 unix environment?
unix 环境的概述环境是一个相对大范围的概念,unix 环境对该概念的作用范围进行了限定,尽管如此这个概念涉及的东西仍然十分庞大。从内核到系统调用到 shell 与系统库,这些都是环境的一部分。应用程序依赖于这些环境来完成创建、执行、销毁的全过程。这一过程的每一部分都相当复杂,具体的细节可以根据个人兴趣进行深入研究,但总体的架构却需要尽早的建立。登入 unix 系统后的控制环境登入 unix 系统时,系统通过读取系统数据文件 /etc/passwd (密码文件)来为我们准备登入的环境。通过校验原创 2020-10-17 10:01:23 · 584 阅读 · 0 评论 -
用两个例子诠释《APUE》中高级编程含义
字符串拷贝问题上一周,我无意中发现一本书—— 《Writing Bug-Free C Code》。在这本书的某一章中提到了 strncpy 函数存在的两个问题 ,看到这里的时候我比较惊讶。在很多书中都一直在强调 strcpy 中存在的问题,鼓励 c 语言开发者使用更安全的 strncpy 来代替 strcpy,确实没看到哪本书说 strncpy 函数存在的问题。心里面有点不以为然,就自己写代码去验证该书中提及的第一个问题——目标字符串没有足够空间时字符串的结尾 ‘\0’ 缺失的问题,结果发现确实如此,颇原创 2020-10-17 09:47:39 · 173 阅读 · 0 评论 -
以 cat 为例讲述更高效的命令行使用方式
以cat为例讲述更高效的命令行使用方式cat 是 unix 中的一个基础命令,你可以在很多基础命令学习书籍的例子中看到它。cat 属于查看文件内容的命令,与它功能相似的一个命令是 tac,只是这个命令从后向前输出文件内容。一般情况下,我们经常需要查询文件中的特定内容,这时我们可以先通过 cat 来读取文件,并将文件内容通过匿名管道发送到子进程中进行处理。这是一个常见的解决方案,但这个方案并不高...原创 2018-10-14 17:57:26 · 307 阅读 · 0 评论 -
time 输出的程序执行时间
time 输出的程序执行时间realreal 时间指的是从进程开始创建运行到运行完成整个的系统时间。这个时间可能包括其它进程执行的时间,以及进程挂起的时间。user在用户态中执行代码花费的 cpu 时间。sys在内核态中执行的代码花费的 cpu 时间。user + sys 就是你的进程使用的 cpu 总时间,这个时间是在所有的cpu上的执行时间的总和。当一个进程有多个...原创 2018-10-21 22:58:36 · 548 阅读 · 0 评论 -
申请与释放内存的问题
申请内存空间时,申请比需求更多的空间,传地址时,只传递需要的大小,当需要进行扩展时,再使用预留的空间。注意释放时要整个释放。实际上 malloc在申请内存时就预留了部分空间用来存储内存描述信息,返回的是与需求大小相同大小的内存起始地址。在 free 的时候,我们传递给 malloc 返回的地址,free 通过该地址找到此块内存区域的描述信息,通过修改描述信息就能够完成内存的释放。free(NUL...原创 2018-10-23 21:11:51 · 607 阅读 · 0 评论 -
重读《APUE》第一章
APUE 第一章笔记当我们登录到 linux 中后,家目录是当前的工作目录。家目录的位置从 /etc/passwd 中的字段中取得。unistd.h 中包含了非缓冲 I/O 操作函数 open、read、write、lseek 与 close 函数的原型。这些函数通过 file descriptor 完成工作。对于 read、write 而言,它们面向的是字符流,通过读写指定的 buffer...原创 2018-12-27 20:14:08 · 225 阅读 · 0 评论