文本文件和二进制文件
文本文件和二进制文件的定义
首先,计算机的存储在物理上是二进制的,也就是在物理存储方面没有区别都是 01 码。所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的,也就是编码上。简单来说,文本文件是基于字符编码的文件,常见的编码有 ASCII 编码,UNICODE 编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
首先,计算机的存储在物理上是二进制的,也就是在物理存储方面没有区别都是 01 码。所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的,也就是编码上。简单来说,文本文件是基于字符编码的文件,常见的编码有 ASCII 编码,UNICODE 编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
Linux 自带的 jdk 是 openjdk
,但是 sun/oracle 的 jdk 更加常用一些,据说 bug 也更少。所以下面就是卸载 openjdk 安装 sun/oralce jdk 的一个教程。
本文主要涉及到 C++ 一些基本语法,在做 oj 时经常用到,特此记录。
查看 Linux 命令的系统调用和库函数的调用可通过下面的命令。
下面是 CPU 缓存的一些概念,所用命令均是在 Linux 平台下
早期 Linux 版本中的调度算法非常简单易懂:在每次进程切换时,内核扫描可运行进程的链表,计算进程的优先权,然后选择 “最佳” 进程来运行。这个算法的主要缺点是选择 “最佳” 进程所要消耗的时间与可运行的进程数量相关,因此,这个算法的开销太大,在运行数千个进程的高端系统中,要消耗太多的时间。
Linux 2.6 的调度算法就复杂多了。通过设计,该算法较好地解决了与可运行进程数量的比例关系,因为它在固定的时间内(时间复杂度 O (1))选中要运行的进程。它也很好地处理了与处理器数量的比例关系,因为每个 CPU 都拥有自己的可运行进程队列。而且,新算法较好地解决了区分交互式进程和批处理进程的问题。因此,在高负载的系统中,用户感到在 Linux2.6 中交互应用的响应速度比早期的 Linux 版本要快。
Linux 系统上有两类不同的 Linux 可执行程序。
第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是 “完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。
第二类是动态链接的可执行程序。动态可执行程序是 "不完整" 的程序,它依靠外部共享库来提供运行所需的许多函数。
当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用 rm,mv 等命令管理文件了。
但是我们知道每个文件都有一个 i 节点号,我们可以考虑通过 i 节点号来管理文件。首先,我们要取得文件的
i 节点号。这个可以通过 ls 命令的 - i 选项获得得。
下述所有命令在 Linux/unix 的 shell 下有效,这里以 bash 为主。如有出入,以你自己的服务器为准。本文所指的 Linux 主要指 RHEL/CentOS,unix 指的是 FreeBSD,这也是服务器中用得最多的版本。