自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

涛行无疆的专栏

乱花渐欲迷人眼,浅草才能没马蹄。。。

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 sig_atomic_t

volatile 和 sig_atomic_thttp://blog.chinaunix.net/u1/41113/showart_494044.html1).volatile    影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,每次使用时都需要去内存里重新读取它的值,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生rele

2012-10-31 21:32:39 1296

转载 标准信号(signal.h)

int NSIG        已定义的信号的数目,为最后一个信号的值加一。   1.程序错误信号:程序无法再继续运行下去,这类信号的缺省动作是终止程序,此 时信号 处理函数应该做一些善后工作,如先前关掉了击键回显(stty -echo),此时应打开 击键 回显(stty echo),最后将缺省动作指定为处理函数,然后重新触发这个信号以结束 程序。 int SIGF

2012-10-31 13:43:38 1540

转载 TCP/IP之四书五经

TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不可想象的。正如Richard Ste

2012-10-30 17:27:59 444

转载 学习linux/unix编程方法的建议,学习Linux的四个步骤

假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式系统编程推荐《高级uni

2012-10-30 14:00:11 567

转载 setbuf函数详解

程序输出有两种方式:一种是即时处理方式,另一种是先暂存起来,然后再大块写入的方式,前者往往造成较高的系统负担。因此,c语言实现通常都允许程序员进行实际的写操作之前控制产生的输出数据量。这种控制能力一般是通过库函数setbuf实现的。如果buf是一个大小适当的字符数组,那么:setbuf(stdout,buf);语句将通知输入/输出库,所有写入到stdout的输出都应该使用buf作为输出

2012-10-28 22:23:03 23409 5

转载 C寄存器变量、局部静态变量、自动变量效率对比

总共有auto,static,register,extern C语言提供了另一种变量,即寄存器变量。这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写,这样可提高效率。    寄存器变量是个临时变量,当调用完之后,会自动释放,以节约内存空间,提高程序效率。    寄存器变量没有地址,没有地址就不能用指针变量指向它。    寄存器变量的说明符是regis

2012-10-24 14:48:13 3667

转载 Linux finger命令 id命令--Linux查看用户个人信息

finger:显示当前登录的用户的信息:Linux 允许多个用户使用不同的终端同时登陆,Linux finger命令为系统管理员提供知道某个时候到底有多少用户在使用这台Linux主机的方法,对于这个简单的命令我们还是先介绍一下再举例吧。Linux finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机

2012-10-23 20:37:47 6155

转载 设备文件

设备文件是用来表示Linux所支持的大多数设备的,每个设备文件除了设备名,还有三个属性:即类型、主设备号、次设备号。设备文件是通过mknod系统调用创建的。其原型为: mknod(const char * filename, int mode, dev_t dev) 其参数有设备文件名、操作模式、主设备号及次设备号。最后两个参数合并成一个16位的dev_t无符号短整数,高8位用

2012-10-22 21:57:18 918

转载 《UNIX环境高级编程》的笔记

第1章:UNIX基础知识第1章:UNIX基础知识 ①UNIX体系结构中,最主要的是内核,它有一些称为系统调用的接口与外界交互。在内核之上有shell 和库函数,然后是应用软件。 ②常见的shell有Bourne shell(sh), Bourne_again shell(bash), C shell(csh), Korn shell(ksh), TENEX C shell(tcsh)。 ③不能

2012-10-21 13:29:01 872

转载 rhel上配置apue.h及err_sys出错处理

一、apue.h源码安装1.APUE2源代码下载:http://www.apuebook.com/src.tar.gz2.我保存到了/root下.解压缩:tar -xzvf src.tar.gz3.cd apue.2e进入apue.2e目录,查看README,告诉我们linux系统只要修改Make.defines.linux再make4.vi Make.defines.linux

2012-10-19 21:48:02 967

原创 unix环境高级编程 err文件

#include "apue.h"#include     /*for definition of errno*/#include     /*ISO C varialbe aruments*/static void err_doit(int,int,const char*,va_list);/**Nonfatal error related to a system cal

2012-10-19 21:27:01 862

原创 unix环境高级编程 apue.h文件

/* Our own header, to be included before all standard system headers */  #ifndef _APUE_H  #define _APUE_H  #define _XOPEN_SOURCE   600  /* Single UNIX Specification, Version 3 */  #inclu

2012-10-19 21:26:14 573

转载 Linux系统调用列表(收藏)

以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。  按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用

2012-10-19 09:37:11 591

原创 getopt.h和getopt(),getopt_long()等函数

下载了一个牛人的代码,里面包括了一个getopt.h的头文件,在vs2008下无法通过编译,没有这个头文件,上网搜索了一些信息,记录下来,以方便以后查阅。     getopt.h和对应的链接库不是每个编译器都有的,gcc编译器好像是有的,但是在vs2008是没有的,所以就要去网上下载跨平台的代码,不管怎么样,最终要把getopt.h和相应的lib文件和工程链接起来,这样才不会报错。这些都比较

2012-10-17 13:40:24 17280 1

转载 LINUX环境(六)--资源与限制

资源与限制运行在Linux系统上的程序是有资源限制的。这些也许是硬件引起的限制(例如内存),也许由系统策略引起的限制(例如,允许 的CPU时间),或者是实现的限制(例如,整数的尺寸或是文件名允许的最大字符个数)。Unix规范定义了一些可以由程序确定的限制。在第7章我们会进行 更为深入的讨论。limits.h头文件定义了许多表示操作系统限制的常量。他们包括:限制常量

2012-10-16 14:24:03 961

转载 LINUX环境(五)--主机信息与日志

主机信息正如我们可以确定用户信息一样,程序也可以确定其运行的计算机的信息。uname命令提供了这些信息。uname同时也作为一个系统调用来在一个C程序中提供同样的信息,我们可以使用man 2 uname来查看详细的信息。许 多情况都需要主机信息。我们也许希望依据在网络中一个程序所运行的机器的名字来自定义其行为,也就是说,是一个学生的机器还是一个管理员的机器。为了授权 的目的,我们也

2012-10-16 14:23:37 1651

转载 LINUX环境(三)--日期与时间

asctime   ctime  mktime时间与日期通常对于一个程序来说可以确定时间与日期是十分用的。也许他要记录其运行的时间,或者是他要一个特定的时间改变其形为。例如,一个游戏程序也许不会在工作时间运行,或者是一个备份调度会在启动自动备份之前等待早些的工作完成。所 有的Unix系统对于时间与日期都使用相同的起始点:1970年1月1日午午夜GMT。这是Unix的创世

2012-10-16 14:22:35 1046

转载 LINUX环境(二)--环境变量

环境变量  getenv,putenv,setenv,unsetenv     environ 环境变量我们在第2章讨论了环境变量。这些变量可以用来控制shell脚本和其他程序的形为。我们也可以使用他们来配置用户环境。例如,每一个用户都有一个环境变量,HOME,定义了其用户主目录,作为其会话的起始位置。正如我们所知的,我们由shell提示来测试环境变量:$ echo $HO

2012-10-16 14:21:38 497

转载 LINUX环境(一)--程序参数

当我们为Linux编写程序时,我们必须考虑到程序会运行在多任务环境下。这就意味着多个程序会同时运行,并且共享机器资源,例如内存,磁盘空间以及 CPU周期。也许在同一时刻会一个程序多个实例在运行。这时最为重要的就是这些程序之间不会相互影响,彼此清楚其周边环境,同时也要正确的运行以避免冲 突,例如与另一个程序同时试着写入相同的文件等。在这一章,我们将会讨论程序执行的环境,他们如何使用环境来得到

2012-10-16 14:20:40 555

转载 LINUX环境(四)--临时文件与用户信息

临时文件通常,程序需要以文件的形式使用临时存储。这也许是存储计算的中间结果,或者是在实际操作之前所做的文件拷贝备份。例如,一个数据程序在删除记录时会使用临时文件。文件会收集需要保存的数据库实体,然后在操作结束时,临时文件会成为新的数据库而原始的会被删除。临时文件的大量使用隐藏了他的一个缺点。我们必须小心来确保程序会选择一个唯一的名字来使用临时文件。如果不是这样,因为Linux是一个

2012-10-16 14:17:52 2752

原创 Linux下内存映射文件的用法

学习了一下Linux下内存映射文件的用法,在这里共享一下自己的收获,希望大家提出宝贵意见,进行交流。            简介:        内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将

2012-10-16 09:23:21 3456

转载 IO端口和IO内存映射

A.几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。  有些体系结构的CPU(如,Po

2012-10-16 08:52:52 3240

原创 用DEV-C++,code::blocks时编译是总是有警告

32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.

2012-10-15 21:27:34 1793

原创 mlock家族:锁定物理内存

锁住内存是为了防止这段内存被操作系统swap掉。并且由于此操作风险高,仅超级用户可以执行。看家族成员:       #include        int mlock(const void *addr, size_t len);       int munlock(const void *addr, size_t len);       int mlockall(int fla

2012-10-15 20:08:31 21577 1

原创 linux 常用头文件

linux 常用头文件ISO C标准定义的头文件(24项) ---------------------- 验证程序断言 ---------------------- 支持复数算术运算 ---------------------- 字符类型 ---------------------- 出错码 ---------------------- 浮点环境 -----------

2012-10-15 15:53:27 529

转载 Linux系统调用--getitimer/setitimer函数详解

忘了说明: setitimer一个进程中只能有一个 下一个会覆盖前一个的定时 想一个进程多个定时器只能自己实现。setitimer() 不支持在同一进程中同时使用多次以支持多个定时器。linux有关定时器(setitimer)的叙述是这样的:    linux系统给每个进程提供了3个定时器,每个定时器在各自不同的域里面计数。当任何一个timer计数到结束了,系统就发送一个信号(sign

2012-10-15 14:11:49 2974

转载 linux内核分析(转自某位大哥网上的笔记)

启动    当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位于地址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代码.这就是对内核初始化过程的一个最简单的描述。    最初,Linux核心的最开始部分是用8086汇编语

2012-10-15 13:56:44 9364

原创 getenv putenv setenv和unsetenv详解

getenv(取得环境变量内容)  相关函数 putenv,setenv,unsetenv  表头文件 #include  定义函数 char * getenv(const char *name);  函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。  返回

2012-10-14 21:24:03 4909

转载 linux下错误的捕获:errno和strerror的使用

经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。    在程序代码中包含 #include ,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量

2012-10-14 20:02:07 940

原创 sigsuspend用法

#include #include #include void my_op(int);main(){        sigset_t new_mask;        struct sigaction act;        sigemptyset(&act.sa_mask);        act.sa_flags=0;        act.sa_h

2012-10-14 19:22:43 835

转载 sigsuspend详解

手册:#include int sigsuspend(const sigset_t *sigmask);The   sigsuspend()   function   shall replace the current signal mask of the calling thread with the set of signals pointed to by sigmask

2012-10-14 19:21:30 779

转载 关于关键字volatile

volatile的本意是一般有两种说法--1.“暂态的”;2.“易变的”。在C语言中,如果一个变量被声明为volatile,则说明这个变量每回都要从内存读到寄存器中,操作完以后,再将值写回到内存中,编译器(例如gcc)并不将值cache在寄存器中。对于多线程或SMP系统,要注意使用volatile。         对volatile的理解    很多人对Volatile都不太了解,其

2012-10-14 19:11:50 505

VC++6[1].0编译环境介绍.pdf

VC++6[1].0编译环境介绍.pdf 超实用

2011-11-23

空空如也

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

TA关注的人

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