#UNIX环境高级编程第三版

php CodeIgniter处理多环境错误级别配置

phpCodeIgniter处理多环境错误级别配置开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为,例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在生产环境这将造成一些安全问题。ENVIRONMENT常量CodeIgniter默认使用$_SERVER['CI_ENV']的值作为ENVIRON...

javascript闭包(Module模式)的用途和高级使用方式

javascript闭包(Module模式)的用途和高级使用方式javascript闭包的用途:1.匿名自执行函数:或者可以理解为,避免污染全局变量2.缓存:源于闭包的核心特性便是保存状态,应用此特性便可对需要的变量进行缓存3.实现封装:同样可以使用闭包保存状态的特性,充当一个作用域块,将块里面的属性变量至于内存之中来...

安装Nginx+Lua+OpenResty开发环境配置全过程实例

安装Nginx+Lua+OpenResty开发环境配置全过程实例OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个WebServer使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql...

python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

python3.4学习笔记(八)Python第三方库安装与使用,包管理工具解惑许多人在安装Python第三方库的时候,经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时,一般会看到以下几种格式的文件:msi,egg,whlmsi文件:Windows系统的安装包,在Windows系统下可以直接双击打开,...

java android 环境变量配置备忘录

javaandroid环境变量配置备忘录,全新重装系统要用到,备忘下来;JAVA_HOMED:Javajdk1.6.0_07CLASSPATH .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libools.jar;ANDROID_SDK E:androidandroid-sdk...

Linux高级编程--11.信号

基本概念信号在Linux中是一个比较常见的概念,例如我们按Ctrl+C中断前台进程,通过Kill命令结束进程都是通过信号实现的。下面就以Ctrl+C为例简单的说明信号的处理流程:用户按下Ctrl-C,这个键盘输入产生一个硬件中断。该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。终端驱动程序将Ctr...

Linux高级编程--10.Socket编程

Linux下的Socket编程大体上包括TcpSocket、UdpSocket即RawSocket这三种,其中TCP和UDP方式的Socket编程用于编写应用层的socket程序,是我们用得比较多的,而RawSocket则用得相对较少,不在本文介绍范围之列。TCPSocket基于TCP协议的客户端/服务器程序的一般流程...

Linux高级编程--09.线程互斥与同步

多个线程同时访问共享数据时可能会冲突,比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成:从内存读变量值到寄存器寄存器的值加1将寄存器的值写回内存假设两个线程在多处理器平台上同时执行这三条指令,则可能导致下图所示的结果,最后变量只加了一次而非两次。如下例子就演示了这一过程:#include<s...

Linux高级编程--08.线程概述

线程有的时候,我们需要在一个基础中同时运行多个控制流程。例如:一个图形界面的下载软件,在处理下载任务的同时,还必须响应界面的对任务的停止,删除等控制操作。这个时候就需要用到线程来实现并发操作。和信号处理函数的控制在处理完信号之后就结束不同的是,多线程的控制流程可以长期并存,操作系统会在各线程之间调度和切换,就像在多个进...

Linux高级编程--07.进程间通信

每个进程各自有不同的用户地址空间,进程之间要交换数据必须通过在内核中开辟缓冲区,从而实现数据共享。管道管道是一种最基本的IPC机制,由pipe函数创建:intpipe(intfiledes[2]);调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户程...

Linux高级编程--06.进程概述

进程控制块在Linux中,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,它通常包含如下信息:进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。进程的状态,有运行、挂起、停止、僵尸等状态。进程切换时需要保存和恢复的一些CPU寄存器。描述虚拟地址空间的信息。描述...

Linux高级编程--05.文件读写

缓冲I/O和非缓冲I/O文件读写主要牵涉到了如下五个操作:打开、关闭、读、写、定位。在Linux系统中,提供了两套API,一套是C标准API:fopen、fclose、fread、fwrite、fseek,另一套则是POSIX定义的系统API:open、close、read、write、seek。其中POSIX定义的A...

Linux高级编程--04.GDB调试程序(查看数据)

查看栈信息当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:backtrace/bt:打印当前的函数调用栈的所有信息。如:(g...

Linux高级编程--04.GDB调试程序(设置断点)

调试已运行的程序在UNIX下用ps查看正在运行的程序的PID(进程ID),然后用gdbPID格式挂接正在运行的程序。先用gdb关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID。并用detach来取消挂接的进程。暂停/恢复程序运行调试程序中,暂停程序运行是必须的,GDB可以方便地暂停程序的运行。...

Linux高级编程--04.GDB调试程序(入门概述)

GDB概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面...
首页上一页...215216217218219下一页尾页