自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 高级I/O

<br />14.2非阻塞I/O<br />非阻塞I/O使我们可以调用open,read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作如继续执行将阻塞。<br />指定为非阻塞I/O<br />1)open描述符,指定O_NOBLOCK<br />2)已经打开的描述符,调用fcntl,打开O_NOBLOCK状态标志。<br />----------------------------------------------------------<b

2011-04-29 11:28:00 413

原创 13守护进程

<br />13.3编程规则<br />1)umask将文件模式创建屏蔽字设置为0.<br />2)调用fork,然后使父进程退出。<br />3)调用setsid以创建一个新会话。<br />4)将当前工作目录更改为根目录。<br />5)关闭不再需要的文件描述符。<br />6)某些守护进程打开/dev/null使其具有文件描述符0,1,2<br />-----------------------------------------------------------------<br />13.4出错

2011-04-28 17:23:00 301

原创 12线程控制

12.3线程属性#include int pthread_attr_init(pthread-attr_t *attr)int pthread_attr_destroy(pthread_attr_t * attr)可以使用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。可以使用int pthread_attr_init(pthread-attr_t *attr)函数初始化,pthread_attr_t就包含的内容就是操作系统实现支持的线程所有属性的默认值。int pthr

2011-04-27 22:09:00 574

原创 11线程

<br />线程包含了表示进程内执行环境必需的信息,其中包括进程中标识线程的线程ID,一组寄存器值,栈,调度优先级和策略,信号屏蔽字,errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本,程序的全局内存和堆内存,栈以及文件描述符测试宏_POSIX_THREADS<br />------------------------------------------------------<br />线程标识<br />进程ID在整个系统中是唯一的,但线程ID不同,线程ID

2011-04-26 18:51:00 364

原创 10信号

--------------------------------------------------------------信号概念每个信号都有一个名字,这些名字都以三个字符SIG开头。信号处理动作:1)忽略此信号2)捕捉信号3)执行系统默认动作“终止+core”表示在该进程当前工作目录的core文件中复制该进程的存储映像。不产生core文件条件:1)进程是设置用户ID的,而且当前用户并非程序文件的所有者2)进程是设置组ID的,而且当前用户并非该程序文件的组所有者。3)用户没有写当前工作目录的权限4)文件已

2011-04-25 17:37:00 365

原创 mysql各接口函数

<br />MYSQL mysql;<br />先init才能connect<br /> mysql_init(&mysql);<br />mysql_real_connect(MYSQL * mysql, char *host, char *user, char *password, unsigned int port, char *dbName, char *unixsocket, unsigned long clientflag);<br />/上面描述了五个参数的主要取值,MYSQL *为mysql

2011-04-25 15:38:00 651

转载 mysql开发

<br />安装mysql<br />sudo apt-get install mysql-servel mysql-client<br />下载安装过程中,会提示输入root密码<br />重新启动mysql服务器:<br />sudo /init.d/mysql restart<br /><br />给普通用户授权操作数据库:<br />mysql -u root -p      (root登录数据库)<br />mysql> create database mydb;                 

2011-04-24 13:00:00 241

原创 9进程关系

<br />BSD终端登录<br />1)系统管理员创建/etc/ttys文件。其中,每个终端设备都有一行,每一行说明设备名和传递给getty程序的参数。<br />2)系统自举时,内核创建进程ID为1的进程,也就是init进程。init进程使系统进入多用户状态。init进程读取文件/etc/ttys。对每一个允许登录的终端设备,init调用一次fork,它所生的子进程则执行(exec)getty程序。init以空环境执行getty程序<br />3)getty为终端设备调用open函数,以读写方式将终端打

2011-04-22 21:58:00 399

原创 8进程控制

Unix系统实现延迟重用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID。防止了将新进程误认为是使用同一ID的某个已终止的先前进程。ID为0的进程通常是调度进程,因此也被称为系统进程。ID为1的通常是init进程,在自举过程结束时由内核调用。早期版本中是/etc/init,新版本中是/sbin/init,此进程负责在自举内核后启动一个unix系统。init通常读与系统有关的初始化文件(/etc/rc*文件或/etc/inittab文件,以及/etc/init.d中的文件,并将系统引导到一个状态。i

2011-04-21 19:30:00 413

转载 volatile

<br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br />    1). 并行设备的硬件寄存器(如:状态寄存器) <br />    2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br />    3). 多线程应用中被几个任务共享的变量

2011-04-21 16:59:00 209

原创 7进程环境

内核执行C程序时,使用一个exec函数,在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址:--这是由连接编辑器设置的,而连接编辑器则由C编译器调用。启动例程从内核取得命令行参数和环境变量值。8忠方式使进程终止五种正常终止1,从main返回2,调用exit3,调用_exit或_Exit4,最后一个线程从其启动例程返回。5,最后一个线程调用pthread_exit。异常终止有3种方式6,调用abort7,接到一个信号并终止8,最后一个线程对取消请求做出响应。-------

2011-04-21 11:38:00 455

原创 2.2头文件标准定义

验证程序断言 支持复数算数运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量 局部类型 数学常量 非局部goto 信号 可变参数表 布尔类型和值 标准定义 整型 标准I/O库 实用程序函数 字符操作函数 通用类型函数宏 时间和日期

2011-04-18 14:55:00 375

原创

<br />library_name.major_num.minor_num.patch_num<br />_g是调试库,增加对库的调试功能。<br />_p代码剖析库,增加复杂的代码剖析和性能分析。<br />命令:<br />nm [options] file<br />列出保存在file中的符号。<br />-c|--demangle将符号名转换为用户级的名字。在让c++函数名可读方面特别有用。<br />-s|--print-armap当用于存档(.a)文件时,输出把符号名映射到定义该符号的模块或成

2011-04-10 11:39:00 293

原创 出错处理

<br />1.assert宏<br />#include<assert.h><br />void assert(int expressio);<br />禁用assert宏<br />#define NDEBUG<br />2.预编译<br />_LINE_,_FILE_宏<br />_LINE_,为int型行号。<br />_FILE_,为char*型文件名。<br />_FUNCTION_,为当前函数的名字,属于GNU C扩展。<br />3.标准库函数<br />stdlib.h       voi

2011-04-10 10:15:00 334

转载 寻找无序互异数组中丢失的数

1.寻找无序互异数组中丢失1个数。异或操作相当于逻辑加。代码:#define LENGTH 100int nOri[LENGTH];int main(){    int x = 0;    for(int j = 1; j    {         x ^= j;    }    for(int i = 0; i    {        x ^= nOri[i];        }    return 0;}2.寻找无序互异数组中丢失2个数。需要将全部数字分成两组A,B,A缺少a,B缺少b。void Fin

2011-04-09 17:43:00 740

转载 ubuntu10.10的cvs安装教程总结

1. 安装 cvs$ sudo apt-get install cvs2. 安装 cvsd$ sudo apt-get install cvsdcvsd安装以后, 会提示设置“repository” 的位置location, type in "/cvsroot".“RootJail” is setted in “/etc/cvsd/cvsd.conf”, the default value is /var/lib/cvsd.This means, your repository location could

2011-04-08 11:24:00 547

转载 滑雪动态规划

此题通过枚举每一个坐标的最长路径,从而找出最长路径。在找坐标map[x][y]的最长路径是通过递归找出map[x-1][y](上),map[x+1][y](下),map[x][y-1](左),map[x][y+1](右)各自的最长路径;将MAX(map[x-1][y],map[x+1][y],map[x][y-1],map[x][y+1])+1即等于map[x][y]的最长路径。在对不同坐标递归时会多次访问到同一个map[i][j],做了大量重复操作,若用一个数组temp[][]保存访问到的map[i][j

2011-04-08 10:17:00 682

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除