预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。 所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。 我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。 C++ 还支持很多预处理指令,比如 #include、#define、#if、#else、#line
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。 异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。 try
程序运行过程中,总会碰到各式各样的错误,比如打开一个不存在的文件。 程序运行过程中如果出现错误就会停止,我们就需要使用一些检测方法来避免错误,从而防止程序退出。 Perl 提供了多中处理错误发方法,接下来我们一一介绍。 if 语句 if 语句 可以判断语句的返回值,实例如下: if(open(DATA, $file)){ ... }else{ die "Error: 无法打开文件 -
错误处理在程序设计中的重要性是勿庸置疑的。任何有影响力的Web 应用程序都需要一套完善的错误处理机制,当然,大多数佼佼者确实做到了这一点,但通常只有服务器端应用程序才能做到如此。 实际上,服务器端团队往往会在错误处理机制上投入较大的精力,通常要考虑按照类型、频率,或者其他重要的标准对错误进行分类。这样一来,开发人员就能够理解用户在使用简单数据库查询或者报告生成脚本时,应用程序可能会出现的问题。 虽
CodeIgniter 的图像处理类可以使你完成以下的操作: 调整图像大小 创建缩略图 图像裁剪 图像旋转 添加图像水印 可以很好的支持三个主流的图像库:GD/GD2, NetPBM, 和 ImageMagick。 注意: 添加水印操作仅仅在使用GD/GD2时可用。另外,即使支持其他的图像处理库,但是为了计算图像的属性,GD是必需的。然而,将使用你制定的库来进行图像处理操作。 初始化类 像 Cod
开发者通常希望就开发环境或者生产环境的不同而有不同的系统行为(响应)。 例如,输出冗长的错误对开发过程很有用,但是当项目上线时这可能会造成一些安全问题。 ENVIRONMENT 常量 默认情况下 CodeIgniter 把环境常量设置为 'development'. 在 index.php 文件的顶部,你会看到:define('ENVIRONMENT', 'development'); 除了影响一
CodeIgniter 的图像处理类可以使你完成以下的操作: 调整图像大小 创建缩略图 图像裁剪 图像旋转 添加图像水印 可以很好的支持三个主流的图像库:GD/GD2、NetPBM 和 ImageMagick 。 注解 添加水印操作仅仅在使用 GD/GD2 时可用。另外,即使支持其他的图像处理库, 但是为了计算图像的属性,GD 仍是必需的。然而在进行图像处理操作时, 还是会使用你指定的库。 初始化
开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为, 例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在 生产环境这将造成一些安全问题。 ENVIRONMENT 常量 CodeIgniter 默认使用 $_SERVER['CI_ENV'] 的值作为 ENVIRONMENT 常量, 如果 $_SERVER['CI_ENV'] 的值没有设置,则设置为 'development'
PDO 事务处理 PDO 事务对象方法 方法 描述 beginTransaction() 启动一个事务 commit() 提交一个事务 rollBack() 回滚一个事务 inTransaction() 检测是否在一个事务内 注意:当需要使用事务的时候,数据库表引擎不能是 MyISAM ,必须要是 InnoDB。 <?php try { $host = 'mysql:host=local
1. 前言 本小节我们介绍 Vue 中如何进行事件处理。在章节 2.2 中我们已经介绍了指令 v-on,本章节我们将详细介绍在 v-on 的一些用法。包括如何传递参数、如何使用事件修饰符等。其中,事件修饰符是本章节的难点。事件修饰符很多,同学们不需要一下子都记住,只要学会如何使用它,在开发过程中如果有所遗忘,可以通过翻看文档来使用。 2. 慕课解释 可以用 v-on 指令监听 DOM 事件,并在触
函数原型 #include <signal.h> int sigsuspend(const sigset_t *mask); 描述 用mask所指的信号集临时替代调用进程的信号屏蔽,然后挂起调用进程直到有不属于mask的信号到达为止。 返回值 一直返回-1,有错误会设置errno 相关函数 [[pause()|pause]]
本节包括sigaction函数和结构体sigaction两个部分。 函数sigaction System Call用于测试和改变一个信号的行为。 函数原型 #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 参数
对一个信号指定新动作或回到其原先的动作 函数原型 #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 参数 signum即信号值。后面的handler就是处理这个信号的动作。它的值为: SIG_DFL:默认动作 SIG_IGN:忽略
函数原型 #include <signal.h> int raise(int sig); 描述 发送一个sig信号给当前进程。raise()是线程安全的函数。与kill()的不同之处是,kill()发射信号给指定的进程(通过pid参数) 当raise()发射的信号,导致了一个信号句柄被调用的时候,raise()在信号句柄返回之后被返回。 返回值 成功0,失败返回非0值(不一定是-1) 相关函数 [
函数原型 #include <sys/types.h> #include <signal.h> int kill(pid_t pid,int sig); 描述 pid 描述 >0 kill发送信号sig给进程pid 0 kill发送信号给和当前进程在同一进程组的所有进程 -1 信号发送给系统内的所有进程 <-1 kill发送信号sig给进程组-pid中的每个进程 返回值 如果成功完成返回值0 失败