读书笔记
金让
这个作者很懒,什么都没留下…
展开
-
《Linux程序设计》第一章
1.库函数库是一组预先编译好的函数集合。标准库文件存储在/lib或者/usr/lib目录中。.a的是静态库,.so是共享库。使用某个静态库的某个函数,只需要包含该静态库的头文件。静态库也成为归档文件,ar工具可以创建任何文件的归档文件。ar crv libfoo.a free.o bill.o //将编译过的free.o和bill.o归档成为libfoo.a文件静态库的缺点是,当用户...原创 2018-09-27 21:10:18 · 163 阅读 · 0 评论 -
《Linux程序设计》第四章 (临时文件、用户信息、主机信息、日志、资源和限制)
1.临时文件程序有的时候会使用一些中间文件存储某些中间计算结果,最后在将这些文件删掉。这样的文件成为临时文件。 tmpnam函数可以生成一个唯一的临时文件名。函数原型如下: #include <stdio.h> char* tmpnam(char *s);//返回一个唯一的文件名。 FILE* tmpfile(void);//该函数指向唯一的临时文件,以读写的方式打开。当对...原创 2018-10-06 19:52:07 · 220 阅读 · 0 评论 -
《Linux程序设计》第四章(程序参数、环境变量、时间和日期)
1.程序参数:C语言编写的linux或者unix程序的入口是main函数。该函数声明如下:int main(int argc,char* argv[]);其中argc代表参数个数,argv是一个字符串数组。参数个数包括程序名自身,argv数组的第一个元素是argv[0]。命令行参数在向程序传递信息方面很有用。可以使用短横线(-)开头的命令行参数来设置标志或者开关。有的时候还会使用+来表示和-...原创 2018-10-05 11:00:42 · 366 阅读 · 0 评论 -
《Linux程序设计》第三章 (错误处理)
函数在失败的时候,会设置errno变量的值来指明失败的原因。程序必须在报告错之后立刻检查errno变量,不然会被覆盖掉。1.strerror函数把错误代码映射为一个字符串,该字符串对发生的错误类型进行说明。函数原型如下: #include <string.h> char *strerror(int errnum); 2.perror函数把errno变量中报告的当前错误映射到一...原创 2018-10-04 10:58:58 · 172 阅读 · 0 评论 -
《Linux程序设计》第三章(标准IO库、格式化输入输出、文件和目录的维护、扫描目录)
标准IO库在启动程序时,有三个文件流是自动打开的,分别是stdin,stdout,stderr。 1. fopen函数:用于文件和终端的输入和输出。函数原型如下: #include <stdio.h>FILE *fopen(const char* filename,const char *mode); mode 有几种形式。需要注意的是,filename和mode...原创 2018-10-04 10:06:28 · 258 阅读 · 0 评论 -
《Linux程序设计》第三章 (系统调用)
许多Linux的shell都允许用户接入自己家的目录,使用cd ~ usr(usr是用户名)命令即可。但是标准库函数不能够理解shell中的~符号。所以必须在自己的程序中使用文件名。Linux中比较重要的三个设备文件:/dev/console:系统控制台;/dev/tty:控制终端;/dev/null:空设备。为了向用户提供统一的接口,设备驱动封装了所有与硬件相关的特性。硬件的特有功能通常...原创 2018-10-02 22:41:21 · 277 阅读 · 0 评论 -
《程序员的自我修养》第三章 目标文件里有什么
在PC端的可执行文件,主要是linux下的ELF(Executable Linkable Format)文件和windows下的PE文件。一般c语言执行代码都保存在.text段上,已经初始化的全局变量或者局部静态变量保存在.data段上。未初始化的全局变量和局部静态变量保存在.bss段上。.rodata代码段存放的是只读数据。ELF结构:头文件(ELF文件的描述信息),段表(描述了每个段的...原创 2018-10-07 12:54:04 · 201 阅读 · 0 评论 -
《程序员的自我修养》第二章 链接 装载与库
gcc hello.c 执行时其实分成了四个步骤:预处理,编译,汇编,链接。1. 预处理(预编译)现在有程序hello.c,预处理生成.i文件。linux中预处理.c文件生成.i文件的指令如下:(两条中的任何一条都可以)$gcc -E hello.c -o hello.i$cpp hello.c > hello.i预处理主要处理以#开头的预编译指令。处理#includ...原创 2018-09-24 22:22:11 · 409 阅读 · 0 评论 -
《Linux程序设计》第二章
shell是操作系统与用户间的接口程序。1.管道和重定向重定向输出:ls -l > lsoutput.txt#将ls的输出输出到lsoutput.txt文件中ps >> lsoutput.txt#将ps的输出追加到lsoutput.txt文件后面kill -HUP 1234 >killout.txt 2>killerr.txt #将进程的标准输...原创 2018-10-01 16:35:40 · 318 阅读 · 0 评论