我们知道,Java或Android使用JNI可以实现与C或C++代码的交互,这在开发需要进行TCP或UDP通讯的java或android应用时显得尤为重要。Java或Android要调用JNI(Native)方法,需要先将封装好JNI接口的C或C++代码编译成动态函数共享库(我们通常以so作为其后缀),然后调用 System.loadLibrary方法将该so文件加载到Java或Android的运行环境去。编译该so文件很简单,Java加载的so文件直接使用gcc编译即可;Android加载的so则需要使用Android NDK内的ndk-build来编译。 阅读全文
由于目前大家使用的Linux文件系统大多是Ext3格式的,文件一旦删除,很可能无法恢复,即便可以恢复也十分麻烦。所以执行rm命令变得异常危险,为此,我们可以编写两个Shell脚本来实现安全删除和恢复文件的功能。 阅读全文
一、CppTest简介
CppTest 是一个简单、轻便的 C++ 单元测试框架,它具有实用性与可扩展性,支持多种输出格式,添加新的测试用例极其方便。CppTest 最大的优点是容易理解、便于掌握和使用。 阅读全文
一、Makefile的语法
一个基本的 makefile 主要由目标对象、依赖文件、变量和命令四部分组成,目标对象是 make 命令最终需要生成的文件,通常为目标文件或可执行程序;依赖文件是生成目标对象所依赖的文件,通常为目标文件或源代码文件;使用变量保存与引用一些常用值可以增强 makefile 文件的简洁性、灵活性跟可读性,一处定义,多处使用,通常还可以对其内容进行赋值或追加;目标对象通常对应着依赖文件而成为一条规则,如“hello.o:hello.c hello.h”,而对应这条规则,通常跟随着一些命令,这些命令的格式跟 Shell 终端的格式一致,如“rm -f *.o”或“$(CC) -c hello.c -o hello.o”,注意每条命令语句前面必须加上制表符 tab 键,否则 make 命令将提示错误,不论是规则语句还是命令语句,都可以引用变量,如“$(CC)”,make 命令在执行这些语句之前都会先将变量替换为它对应的值。 阅读全文
对于 Linux 跟 Unix 系统而言,make 是一个极其重要的编译命令,我们在开发项目或者安装应用软件时,经常要用到 make 或 make install,对于一个包含几十、几百甚至成千上万个源文件的项目,如果每次都要键入 gcc 或 g++ 等命令来进行编译的话,那对于程序员简直就是一场噩梦,而使用 make 和 makefile 工具便可以简洁明了地理顺各个源文件之间纷繁复杂的相互关系,将大型项目分解成多个更易于管理的模块,自动完成编译工作,并且可以只对程序员上次编译后修改过的部分进行编译。
因此,有效的利用 make 和 makefile 工具可以大大提高程序开发的效率。同时也极大地减轻了 Linux 下应用程序安装的难度。接下来,就让我们来详细了解一下 make 及其描述文件 makefile。 阅读全文
SecureCRT 是一款支持 SSH 协议的终端仿真程序,同时支持 Telnet 和 Rlogin 协议。它包含 Windows、Linux 和 MacOS 三个平台的版本,是上述三类操作系统连接远程服务器的理想工具。介于它丰富的个性化功能跟便捷的文件传输方式,被众多的 Windows 用户所青睐。SecureCRT 是一款收费软件,用户只能试用 30 天,虽然 SecureCRT 还提供了 Linux 跟 MacOS 版本,但由于这两类系统上的 scp、ssh 等命令差不多可以免费实现 SecureCRT 的相关功能, 所以并不受 Linux 跟 MacOS 用户青睐。 阅读全文
Bash 的运行依赖一系列的环境变量,而这些环境变量的初始数据大部分来源于环境配置文件,Bash 在启动的时候通过加载环境配置文件来生成并初始化它所依赖的环境变量,如命令行提示符、命令搜索路径、历史命令存储上限等。影响所有用户的环境配置文件称为系统配置文件,每个用户独有的环境配置文件称为用户配置文件。在介绍 Bash 的环境配置文件之前,让我们先来了解下 login 跟 non-login 两种类型的 Shell 。 阅读全文
变量是 Shell 运行环境中不可或缺的一部分,一些跟 Shell 息息相关的配置或信息都以变量的形式保存在 Shell 运行环境中,比如我们通过 Shell 在不同目录之间来回切换,当前目录的绝对路径将被保存在一个 Shell 变量当中,执行 pwd 命令获取当前路径时,调用该变量的值将被调用。类似的变量还有很多,下面就让我们一起来详细了解一下。 阅读全文
前面我们对 Linux 下的 Shell 跟 Shell 中的 Bash 有了一个比较全面的了解,那么接下来就让我们一起来体验一下三个基本的 Shell 命令吧,它们分别是 date、cal 跟 bc 命令,希望借此可以让大家对 Shell 命令有个基本的认识。
一、date命令
顾名思义,date 命令是用来查看跟设置日期与时间用的,默认查看当前时间,此外我们还可以通过指定参数查看几天、几个月、几年之前或之后的时间与日期。如果想设置时间,需要先获得管理员权限。 阅读全文
日常应用中,Linux 下我们接触得最多的 Shell 恐怕非 Bash 莫属了,相信熟悉使用了 Bash 以后,要掌握其他 Shell 的使用,应该易如反掌。这一节我们着重介绍一下 Bash 的基本功能、特点以及它所包含的命令。
一、Bash 的功能概述
Bash 是绝大多数版本的 Linux 系统下默认的 Shell ,全名为 Bourne Again Shell 。它功能强大,那么接下来我们将围绕 Bash 的六大优点来对其进行深入了解。 阅读全文