LINUX应用程序开发随笔
0.常用命令:
(1)perror:打印出错的原因,可自动关联全局变量errno <stdio.h>
(2)strerror:打印errno对应的内容 <string.h>
(3)malloc: <stdlib.h>
(4)ulimit:更改系统限制参数,例如:更改文件可以打开的最多数量 根据系统提示的 -啥字母 去更改 。 ulimit -a 可以查看所有系统限制
(5)比较两个文件是否相同: diff file1 file2 :如果相同,则什么都不返回
(6)du:显示指定的目录或文件所占用的磁盘空间
0-1.常用知识点:
(1)void *赋给任何指针,或者任何指针赋给void *都是天经地义的。
(2)栈、堆、静态区的区别:
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程 序将在最后才释放掉动态内存。 但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。
(3)谁打开谁关闭,谁创建谁销毁,是资源就有上限
(4)文件权限自动生成规则: 0666 & ~umask (其中umask的值,直接在终端下输入即可,umask的存在,就是为了防止产生权限过松的文件)
(5)要养成使用任何函数一定要包含其头文件的习惯
(6)VIM编辑器的Tab缩进配置方式如下:
①创建配置文件:vim ~/.vimrc
②set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent
1.LINUX应用程序开发主要学习的知识点4个:I/O、文件系统、并发、IPC(Inter-Process Communication 进程间通讯); 参考书籍为<<UNIX环境高级编程>>,基础知识为3~16章。
I/O:3、5、14章
文件系统:4、6、7章
并发: 信号:10章 多线程 10、11章
IPC: 进程基础:8章 守护进程:13章 进程间通信:15、16章
2.I/O(input & output 是一切实现的基础)
I/O分两种,一种是标准I/O(stdio) -->第五章 ,一种是系统调用I/O,也叫文件I/O(sysio) --->第三章 优先使用标准I/O,可移植性好
3.标准I/O(stdio): FILE类型贯穿始终
文件打开、关闭:fopen fclose
字符/字符串读写:fgetc fputc fgets fputs fread fwrite
打印以及读取:printf scanf
文件指针操作:fseek ftell rewind flash
4.fopen、fclose的讲解:
(1)FILE指针,是存放在堆中的
(2)fprintf用来打印很方便,输出路径输入stderr,可以直接打印在控制台上,
(3)perror打印和strerror打印非常好用,详细见常用命令1、2
(4)生成文件的权限规则详见常用知识点4
(5)但凡碰到函数指针,就多思考一下指针的返回是堆还是栈还是静态区
5.fgetc、fputc的讲解:
(1)getc在系统中被定义成宏来使用,fgetc在系统中被定义成函数来使用。其中宏不占用系统调用时间,只占用编译时间,函数则恰恰相反。
(2)打开文件,就必须关闭文件。如果打开文件后,在后续的操作中发生异常,必须关闭文件,此处操作最好挂在钩子上。
(3)用这两个函数和fopen、fclose这两个函数,可以实现cp函数的功能以及统计一个文件内有多少个有效字符的功能
6.fgets、fputs的讲解:
(1)fgets正常结束的方式有2种:①读取到size-1个字符 ②读取到‘\n’,其中①,读取size-1结束,是因为最后有一个‘\0’
7.四种输出的讲解:
(1)printf:输出到标准输出上
(2)fprintf:输出到指定输出流上
(3)sprintf:输出到字符串上
(4)snprintf:输出到固定长度的字符串上(防止越界)
8.三种输入的讲解:
(1)scanf:从标准输入设备上获取
(2)fscanf:从指定流获取
(3)sscanf:从字符串钟获取
9.原则操作:不可分割的最小单位; 其作用:解决竞争和冲突
10.命令行模式下,一个命令后跟参数时, --后跟长格式选项, -后跟短格式选项,既然短格式好用,长格式还存在的意义在于:如果某两个或多个命令短格式都一样,比如都是-a,那么只能使用长格式。
11.文件常用权限: 664 即:使用chmod 更改的权限
12.单链表最大的缺陷:单向回不去
13. ln 创建一个硬链接, 创建出来的新文件,inode号和原来一模一样,即使删除了源文件,链接文件依旧可以使用。其特点是:硬链接与目录项是同义词,并且建立硬链接有限制,不能给分区和目录建立
ln -s 符号链接,类似于windows下的快捷方式,inode号和原来不一样。文件类型显示时,是L。其特点是:可以跨分区,可以给目录建立。
14. utime 可以更改文件最后读的时间和修改的时间

浙公网安备 33010602011771号