PILE读书笔记_基础知识】的更多相关文章

程序的构成 Linux下二进制可执行程序的格式一般为ELF格式. 我们可以用readelf命令来读取二进制的信息. ELF文件的主要内容就是由各个section及symbol表组成的. 下面来分别介绍这些字段的含义: .text:已编译程序的机器代码,为代码段, 用于保存可执行指令 . .rodata:只读数据,比如printf语句中的格式串和开关(switch)语句的跳转表. .data:已初始化的全局变量或静态变量.局部C变量在运行时被保存在栈中,既不出现在.data中,也不出现在.bss节…
进程是操作系统运行程序的一个实例, 也是操作系统分配资源的单位. 在Linux环境中, 每个进程都有独立的进程空间, 以便对不同的进程进行隔离, 使之不会互相影响. atexit函数 #include <stdlib.h> int atexit(void (*function)(void)); atexit用于注册进程正常退出时的回调函数. 若注册了多个回调函数, 最后的调用顺序与注册顺序相反:类似于栈. 使用atexit注册的退出函数是在进程正常退出时, 才会被调用. 这里的正常退出是指,…
在学习和分析标准I/O库的同时, 可以重点与Linux的I/O系统调用进行比较. stdin. stdout和stderr都是FILE类型的文件指针, 是由C库静态定义的, 直接与文件描述符0. 1和2相关联, 所以应用程序可以直接使用它们.其中,stdin是不可写的, stdout是不可读的, 而stderr不仅不可读, 且没有缓存. I/O的缓存 C库的I/O接口对文件I/O进行了封装, 为了提高性能, 其引入了缓存机制, 共有三种缓存机制: 全缓存. 行缓存及无缓存. (1)全缓存一般用于…
open函数 int open(const char *pathname, int flags, mode_t mode); 参数说明: (1)pathname: 表示要打开的文件路径 (2)flags: 用于指示打开文件的选项,常用的有O_RDONLY. O_WRONLY和O_RDWR,还有一些选项如下: O_APPEND: 每次进行写操作时, 内核都会先定位到文件尾, 再执行写操作 O_ASYNC: 使用异步I/O模式 O_CLOEXEC: 在打开文件的时候, 就为文件描述符设置FD_CLO…
UNIX体系结构: 从严格意义上讲,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们通常将这种软件称为内核(Kernel),因为他相对较小,而且位于环境的核心.图片显示了UNIX系统的体系结构. 内核的接口被称为系统调用(system call).公用函数库构建在系统调用接口只是,应用程序即可使用公用函数库,也可以使用系统调用.shell是一个特殊的应用程序,为运行其他应用程序提供一个接口. 登录: 系统口令文件通常是/etc/passwd.口令文件中的登录项由7个以冒号…
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数据库连接池管理数据库. ☐ 将SQL语句硬编码到Java代码中,若SQL语句修改,需要重新编译Java代码,不利于系统维护. ☐ 将SQL语句配置在XML文件中,即使SQL变化,我们也不需要队Java代码进行重新编译. ☐ 向PreparedStatement中设置参数,对占位符号位置和设置参数值,…
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型——装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. ; Object obj = i; 三:将引用类型转换为值类型——拆箱 3.1…
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的方法得到的就是这个变量,更准确的说,是指向内存中变量的指针.所以方法内部对变量进行的任何改变在方法退出后仍然有效.而如果变量通过值传递给方法,被调用的方法得到的是变量的一个相同副本,也就是说方法退出后,对变量进行的修改会丢失. 2.2值类型的值传递:值类型的变量包含的是实际数据,作为参数传递的是数据…
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存储位置的不同会有不同的影响. 例如int类型是值类型:int x,y; x=10;y=x;y=20;前三个语句会在内存的两个地方存储值10.改变y的值不会影响x. 如果已经定义了一个类Test,Test是一个引用类型,有一个int类型的成员变量value,执行完如下代码后,只有一个Test对象.x和…
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Timer; import java.util.TimerTask; public class TimerTest { public static void main(String[] args) { Timer timer = new Timer(); long delay = 1000; //延时多少…