自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C的几个函数安全性比较

snprintf 与 sprintf函数比较          extern int snprintf (char *__restrict __s, size_t __maxlen,    __const char *__restrict __format, ...)snprintf 保证缓冲区不会发生越界情况。第二个参数maxlen要求目标缓冲区大小,确保不会发生缓冲区溢出现象。

2009-02-21 11:12:00 717

转载 Linux设置环境变量小结

1、总结背景在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。2、变量简介Linux是一个多用

2009-02-20 17:01:00 3136

转载 原创 在Unix/Linux下防止二重启动(C语言)

在Unix/Linux下为了保证在同一时间内某个程序只有一个实例在运行,即防止二重启动的发生,采用的方法除了用锁定文件之外,还可以用该程序在系统运行时,在进程表中的信息来进行控制(ps命令看到的内容)。方法有两种:第一种是:用进程的command字符串进行防止二重启动的控制实现步骤:(1)定义应用程序的名的字符串变量    char EXE_NAME[255]=" app ";(2)可以用exec

2009-02-09 15:23:00 807

转载 Fedora硬盘安装

本文以Fedora 10为例介绍使用光盘镜像文件硬盘安装Fedora(即不需要光驱支持)。Fedora 9等版本与此完全类似(只需要把镜像名修改一下即可)。本教程使用的是镜像是Fedora的DVD镜像,使用LiveCD镜像也可轻松实现硬盘安装,但方法略有不同,见Fedora硬盘安装(使用LiveCD)。 准备工作您需要获取Fedora的安装dvd镜像,Fedora 10

2009-02-05 14:29:00 2827

转载 给文件锁设定timeout

Linux 文件锁是建议锁,也有人把它叫做记录锁,是通过系统调用fcntl(2)来实现的。这种锁在锁定文件时有两种模式,分别是阻塞(block)和非阻塞模式。在编码时比较常用的是有一种的非阻塞模式,也就是发现文件已经被其他进程锁定时,立即返回不予等待。而阻塞模式则正好与它相反,也就是一直等待直到其他进程释放文件锁为止。注:关于详细内容请参看《Unix环境高级编程》不过,有的时候也会用到阻塞模式的文

2009-01-19 14:40:00 1244

转载 准则5:尽可能避免线程的延迟撤销处理

准则5: 尽可能避免线程中做延迟撤销的处理线程的异步撤消是指:一个线程发出中断其他线程的处理的一个动作延迟撤消因为是规格自由度比较高、所以根据OS和C库函数的版本它也有各式各样的动作 要想在不同的环境下都能稳定的动作的话,就必须要详细调查运行环境和,对C库函数进行抽象化,做必要的条件编译 在C++中、「撤消发生时的对象释放」的实现不具有可移植性

2009-01-19 14:38:00 695

转载 怎么利用设计模式来更有效的使用共享内存

Linux中处理来自共享对象的同步事件 怎么利用设计模式来更有效的使用共享内存 级别:中等 Sachin Agrawal ([email protected]), Senior Software Engineer, IBM Software Labs, IndiaSwati P. Udas ([email protected]), Software En

2009-01-19 14:37:00 597

转载 准则4:请不要做线程的异步撤消的设计

铁则4: 请不要做线程的异步撤消的设计 线程的异步撤销是指: 某个线程的执行立刻被其他线程给强制终止了 请不要单单为了让“设计更简单”或者“看起了更简单”而使用线程的异步撤消咋一看还是挺简单的。但是搞不好可能会引起各种各样的问题。请不要在不能把握问题的实质就做出使用线程的异步撤消的设计!在pthread的规格说明中,允许一个线程可以强制中断某个线程的执行。这就是所说

2009-01-19 14:35:00 612

转载 准则2:要知道信号处理函数中可以做那些处理

UNIX上C++程序设计守则 (2) 原文地址:http://d.hatena.ne.jp/yupo5656/20040712/p2准则2: 要知道信号处理函数中可以做那些处理· 在用sigaction函数登记的信号处理函数中可以做的处理是被严格限定的 · 仅仅允许做下面的三种处理    1. 局部变量的相关处理    2. “volatile sig_atomic_t”类型的全局变量的相关操

2009-01-19 14:34:00 1077 1

转载 准则6:遵守多线程编程的常识(上)

准则6: 遵守多线程编程的常识 要准确把握在POSIX标准的函数中,那些函数是非线程安全的,一定不要使用 要让自己编写的函数符合线程安全 在访问共享数据/变量之前一定要先锁定 如果使用C++的话,一定要注意函数的同步方法说明: (1) 要准确把握那些非线程安全的函数,一定不要使用 如果在POSIX平台上进行多线程编程时,有几个

2009-01-19 14:32:00 798

转载 Fedora 8 安装指南(全)

翻译者:杨英超 前言    2一、安装介质    2二、基本系统的安装    21、分区    32、Bootloader    33、网络设置    34、基本软件包的选择    35、单个的软件包的选择    36、FirstBoot需要设置的内容    4三、设置Sudo    4四、配置yum    5(1)Fdora源设置    5(2)第三方源设置    5五、安装nvidia

2009-01-19 14:28:00 1290

转载 C++资源工具

   C++的辅助工具繁多,我们分门别类的为大家作介绍:    4.1 文档类    (1) Doxygen    参考站点:http://www.doxygen.org    Doxygen是一种适合C风格语言(如C++、C、IDL、Java甚至包括C#和PHP)的、开放源码的、基于命令行的文档产生器。    (2) C++2HTML    参考站

2009-01-16 10:40:00 735

转载 防止内存泄露 Linux下用Valgrind做检查

用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。 Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86,amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的C

2009-01-16 09:57:00 399

转载 C++语言代码检查工具PC-Lint四步速成

概述  PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具。它的使用历史可以追溯到计算机编程的远古时代(30多年以前)。经过这么多年的发展,它不但能够监测出许多语法逻辑上的隐患,而且也能够有效地帮你提出许多程序在空间利用、运行效率上的改进点,在很多专业级的软件公司,比如Microsoft,PC-Lint检查无错误无警告是代码首先要过的第一关,我个人觉得,对于小公司和个

2009-01-16 09:37:00 514

转载 C++完美实现Singleton模式

Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。1.         标准的实现class Singleton{public:       static Singleton * Instance()       {              if( 0== _instance)              {   

2009-01-12 11:36:00 466

转载 UNIX上的C++程序设计守则---准则1:不依赖于信号收发的设计

Unix跟Windows等那些”对于开发者易于使用”的OS比起来,在信号和线程的利用方面有诸多的限制。但是即使不知道这些知识就做构架设计和实现的情况也随处可见。这个就是那些经常不能再现的bug的温床吧。因此,我想分成几回来写一些准则来防止陷入到这些圈套里。准则1:不依赖于信号收发的设计·给其他进程以及自己发送异步信号并改变处理流程的设计不要做 异步信号是值用kill系统调用来创建?

2009-01-09 09:48:00 661

转载 UNIX上C++程序设计守则3

鉄則3: マルチスレッドのプログラムでのforkはやめよう准则3:多线程程序里不准使用fork マルチスレッドのプログラムで、「自スレッド以外のスレッドが存在している状態」でfork*1を行うと、さまざまな問題を引き起こす可能性があります。「問題」の典型例としては、子プロセスのデッドロックが挙げられます。問題の詳細を把握しないまま、マルチスレッドのプログラムで不用意にforkするのはやめま

2009-01-09 09:41:00 657

转载 组合,关联,聚合的区别

类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛化)、关联、聚合和组合。(1)继承:指的是一个类(称为子类)继承另外的一个类(称

2009-01-08 22:47:00 770

转载 Linux 信号signal处理机制

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念

2009-01-08 22:30:00 469

转载 sigprocmask系统调用

功能描述:设定对信号屏蔽集内的信号的处理方式(阻塞或不阻塞)。用法:#include signal.h>int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);参数:how:用于指定信号修改的方式,可能选择有三种SIG_BLOCK //加入信号到进程屏蔽。SIG_UNBLOCK //从进程屏蔽里将信号删除。SIG_SETMAS

2009-01-08 22:29:00 664

转载 Linux下多线程编程与信号处理易疏忽的一个例子

这几天把一个网络流量采集器程序基本改好了,原来在main函数中把几个子线程启动后就睡10分钟后开始清理子线程后退出。现在想改成子线程启动后主线程进入无限睡眠,直到收到SIGTERM或SIGINT。主程序如下:其他头文件#include  //信号处理所需要的头文件int main(int argc, char * argv[]){  //其他所需要的变量声明     sigset_t sig_se

2009-01-08 22:25:00 439

空空如也

空空如也

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

TA关注的人

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