自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shandianling

学无止境——不随流,踏踏实实向前走,为理想而奋斗。

  • 博客(35)
  • 资源 (12)
  • 收藏
  • 关注

原创 pthread_cleanup_push() pthread_cleanup_pop()

void pthread_cleanup_push(void (*rtn)(void *), void *arg);注册一个线程终止时的清理函数 (类似atexit),后注册的先执行。void pthread_cleanup_pop(int execute); 解除注册最近一个注册的线程清理函数,即线程清理函数使用类似栈的压 (push)、弹(pop)方式进行注册和解除;参数 execute

2012-07-29 21:27:32 707

原创 undefined reference to 'pthread_create'

pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a。所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。问题解决如下:在编译中要加 -lpthread参数gcc -o pthread pthread.c -lpthread  如果使用eclipse,

2012-07-29 16:41:55 413

原创 exit() abort() 区别

exit()函数结束程序,返回一个值给操作系统,告知程序的最后状态。在调用exit()函数之后,控制权会移交给操作系统。 在结束程序之前,exit()函数会调用之前使用atexit()注册过的所有函数,按照LIFO次序调用,关闭所有打开的文件,删除tmpfile()函数建立的所有临时文件。  abort()函数会发出一个SIGABRT信号来终止程序的执行。不会调用之前用atexit()函数注册

2012-07-27 17:16:16 1297

原创 perror() strerror() _strerror()

定义函数  void perror(const char *s); perror ("open_port");函数说明  perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 设备 (stderr) 。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。  在库函数中有

2012-07-27 13:55:04 548

原创 信号的未决 阻塞

信号的“未决”是一种状态,指的是从信号的产生到信号被处理前的这一段时间;可以通过 int sigpending (sigset_t *set) 和 int sigismember (const sigset_t *set, int signum) 查看某个信号是未决的。   信号的“阻塞”是一个开关动作,指的是阻止信号被处理,但不是阻止信号产生。  信号的阻塞就是让系统暂时保留信号

2012-07-26 16:08:43 685

转载 可重入和不可重入

这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢复到断点重新执行的过程中,函数所依赖的环境没有发生改变,就说这个函数是可重入的,反之就是不可重入的。众所周知,在进程中断期间,系统会保存和恢复进程的上下文,然而恢复的上下文仅限于返回地址,cpu寄存器等之类的

2012-07-25 16:21:56 895

转载 Unix系统信号

SignalDescriptionSIGABRT由调用abort函数产生,进程非正常退出SIGALRM用alarm函数设置的 timer超时或setitimer函数设置的interval timer超时SIGBUS某种特定的硬件异常,通常由内存访问引起SIGCANCEL由Solaris Thread Library内部使用,通常不

2012-07-21 17:28:53 5947

原创 ssh: connect to host xxx port 22: Connection refused -ubuntu

发现没安装ssh server sudo apt-get install openssh-server

2012-07-20 14:08:53 1335

原创 僵尸进程

在UNIX术语中,一个已经终止、但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵尸进程(zombie)。僵尸进程的避免:一,让父进程比子进程先结束,让init进程来领养子进程。比如可以fork 2次:A进程 fork出B子进程,B子进程再fork出C子进程,再杀掉B子进程。这样C子进程就由init进程领养了。  一个由init进程领养的

2012-07-17 10:47:27 809

原创 exit() _exit()

图 C程序的启动与终止区别:_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;exit()函 数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。exit()函数与_exit()函数最大的区别就在于 exit()函数在调用 exit 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。#includemain()

2012-07-16 16:44:50 10089

原创 fork vfork

vfork用于创建一个新进程,而该新进程的目的是exec一个新程序。vfork与fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec(或exit),于是也就不会存访该地址空间。不过在子进程调用exec或exit之前,它在父进程的空间中运行。这种工作方式在某些UNIX的页式虚存实现中提高了效率(与上节中提及的,在fork之后跟随exec,并采用在

2012-07-16 15:26:35 660

转载 非局部跳转函数 setjmp 和 longjmp

1. 非局部跳转函数 - setjmp 和 longjmp 函数   非局部指的是,这不是由普通C语言goto语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,   返回到当前函数调用路径上的某一个函数中。(简单点基本这样说:goto 语句用于同一个函数内跳转,   而 setjmp 和 longjmp的组合,不但可以实现函数内跳转,还可以实现函数间跳转)      特别注

2012-07-13 17:08:25 669

转载 register volatile 修饰符

register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。* Procedure for the assignment of structures, */   /* if the C compiler doesn't support this feature */   #ifdef NOSTRUCTASSIGN

2012-07-13 16:45:37 2590

原创 如何使/etc/profile中修改的配置立刻生效?

source /etc/profile但貌似只对当前有效。打开别一个终端依然没用。最好logout一下就OK了。(PS:~/.profile ;~/.bashrc 是对当前用户的配置项,/etc/profile则是系统级,针对所有用户)

2012-07-13 15:57:07 3205

转载 static

C程序一直由下列部分组成:      1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;      2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。      3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。       4)栈——增长方向:自顶向下增长;自动变量以

2012-07-13 15:56:07 444

转载 GDB调试精粹

一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改

2012-07-12 17:26:24 380

转载 gdb调试

一般来说,GDB主要帮忙你完成下面四个方面的功能:    1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。    2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)    3、当程序被停住时,可以检查此时你的程序中所发生的事。    4、动态的改变你程序的执行环境。#include int main(){ int

2012-07-12 17:19:43 451

原创 linux 配置java环境

下载jre 可到www.oracle.com 或 www.java.com下载。下载解压到某一目录上 如 /usr/java/对当前用户有效vi ~/.bashrc加入:export JAVA_HOME=/usr/java/jre1.6.0_33export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2012-07-12 16:40:25 333

原创 linux 进程查看

一,top命令 显示了当前正运行的进程以及关于它们的重要信息,包括它们的内存和 CPU 用量。该列表既是真实时间的也是互动的。命令描述[q]退出[Space] 立即刷新显示[h] 显示帮助屏幕[k] 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。[n] 改变要显示的进程数量。你会被提示输入数量。[u] 按用户排序。[M] 按内存用量排序。[P]

2012-07-12 10:40:51 488

转载 跟我一起写 Makefile

陈皓 概述 转自:http://blog.csdn.net/haoel/article/details/2886/—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一

2012-07-11 17:25:16 1341

原创 一个简单的makefile

PROJECT = testDIR =./DIR2 =./otherWORKDIR = ./work/LIB = /home/jack/public/libsOBJECTS = test.o \ test2.o test3.o CFLAGS = -c -O2 -I$(DIR) -I$(DIR2)COMPILER = g++LIN

2012-07-11 17:06:33 521

转载 CFLAGS 详解

CFLAGS 是决定 Gentoo 系统效能与稳定的关键之一。恰当的 CFLAGS 能在效能、编译时间、与系统稳定度中取得平衡,失败的 CFLAGS 可能导致编译失败,甚至系统损毁。那么,在茫茫 CFLAGS 海中,如何才能捞到命中注定那根针呢?此文件的 CFLAGS 针对 x86 与 x86-64 平台上的 GCC 3.4 (GNU Compiler Collections - http:/

2012-07-11 16:13:18 10598

转载 linux C 字符集转换,UTF-8,GB2312

在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。 利用iconv函数族进行编码转换    iconv函数族的头文件是iconv.h,使用前需包含之。    #include    iconv函数族有三个函数,原型如下:    (1) iconv_t iconv_o

2012-07-11 10:10:21 1537

原创 (.text+0xb3a): undefined reference to `clock_gettime'

问题:(.text+0xb3a): undefined reference to `clock_gettime'Diameter/Diameter.o: In function `CTDiameter::doDWR()':Diameter.cpp:(.text+0xb3a): undefined reference to `clock_gettime'Diameter/Diameter

2012-07-10 17:20:43 2714

原创 centos 使用vsftpd问题

一,-bash: ftp: command not found原因:没有安装ftp解决:找到相应ftp安装包。 如 rpm -ivh ftp-0.17-51.1.el6.i686.rpm二,使用ftp命令,登入后 500 OOPS: cannot change directory:/home/**su -getsebool -a | grep ftpsetsebool -P

2012-07-06 23:43:50 638

原创 如果依赖的库文件是由低版本gcc编译的怎么办

除了安装低版本的gcc外。可以在/usr/lib中添加对应的libstdc++.so.5试试。有时候它会自动创建libstdc++.so.6文件,所以在make之前要保证libstdc++.so.6没有在/usr/lib里。PS:使用ldconfig会自动创建libstdc++.so.6libstdc++.so.5下载地址:http://ishare.iask.sina.com.c

2012-07-06 10:13:57 1262

转载 linux下添加共享库

问题:cannot open shared object file: No such file or directory failed 方法:作个链接放到/usr/lib里。如: ln -s /usr/local/mysql/lib/libmysqlclient.so.16/usr/lib/更好方法:Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下

2012-07-06 10:08:48 3090

转载 undefined reference to

一,举例出错的时候是这样的:出错的时候是这样的:1 main:main.o Array.o2 g++ main.o -o main3 ./main4 main.o:main.cpp Array.h5 g++ -c main.cpp6 Array.o: Array.cpp Array.h7 g++ -c Array.cpp后来才发现第二行编译的时候没有加上

2012-07-06 09:36:26 1717 1

原创 centOs中文 英文界面转换

#  vim /etc/sysconfig/i18nLANG="zh_CN.UTF-8"LANG="en_US.UTF-8"

2012-07-05 22:48:54 3735

原创 xx is not in the sudoers file

vim /etc/sudoers 编辑文件,在root ALL=(ALL)ALL行下添加XXX ALL=(ALL)ALL,XXX为你的用户名。

2012-07-05 22:47:51 670

原创 字符串转时间(time_t)

#include #include /** *      str为日期字符串 *      formatStr 为时间对应的格式, *      如2012-07-04 15:33:52对应的格式为%d-%d-%d %d:%d:%d */time_t string2time(const char * str,const char * formatStr){  s

2012-07-04 15:40:41 4382

原创 口令文件 getpwent()

#include #include struct passwd *getpwuid(uid_t uid);struct passwd *getpwnam(const char *name); #include #include #include #include struct passwd * getpwnam(const char *name){ struct

2012-07-03 17:28:45 634

原创 创建临时文件 tmpnam tmpfile tempnam mkstemp unlink

推荐使用 tmpfile mkstemp#include #include #include #include intmain(void){ FILE *pfile,*pfile2; int fileSize, readSize; char * fileBuff = NULL; char buff[128] = { 0 };/*****

2012-07-03 15:51:39 2220

原创 时间相关 time() ctime time_t localtime() gettimeofday

1)求 时间差(精确到微秒) int gettimeofday (struct timeval *__restrict __tv,__timezone_ptr_t __tz);#include #include intmain(void){ int i=0; struct timeval tv,tv2; gettimeofday(&tv, NULL); for (i =

2012-07-02 11:23:10 2827

原创 rename() 解说

#include  int rename(const char *oldpath, const char *newpath);//重命名(1) 如果oldname为一个文件:如果newname已存在,而且是一个目录,则不能重命名。       如果newname已存在,而且是一个文件,则先将newname文件先删除,然后将oldname更名为newname。对oldname

2012-07-01 15:58:35 945

learning opencv 中文版

学习opencv中文版,适合喜欢在电脑上看书查资料的同学

2011-04-27

Eclipse 7.5汉化、注册码、

如题Eclipse 7.5汉化、注册码、,里面有汉化方法。。自己看下。应该没问题的!

2010-10-05

ASP网页制作ppt

这是关于ASP网页制作的课件,需要的下!

2009-03-10

数据库系统概论(第三版)

数据库系统概论(第三版),感觉不错,希望对大家有帮助!

2009-03-08

C语言程序设计教学课件

C语言程序设计教学课件,对于C语言基础不可忽视!

2009-03-06

面向对象程序设计与 Visual C++6.0教程

面向对象程序设计与 Visual C++6.0教程 [陈天华]

2009-03-06

JAVA语言程序设计教学课件

这是JAVA语言程序设计教学课件, 对学习JAVA语言的同学尤其是初 学者来说是很有帮助的!

2009-03-06

Access关系数据库教学课件.rar

这是关系数据库教学课件,是ACCESS的, 简单实用,学起来简单!

2009-03-06

编译程序设计原理第二版习题解析

这是编译程序设计原理第二版习题解析, 希望对大家有所帮助!

2009-03-06

编译原理习题解答 [陈意云的习题集].

这是陈意云的编译原理习题解答,感觉不错, 希望对你有帮助!

2009-03-06

编译程序设计原理[陈火旺]

编译程序设计原理[陈火旺]全文 希望对学习编译原理的同学有帮助!

2009-03-06

酒店餐饮管理系统 (基于C#)

不错的酒店管理系统,功能齐全,对于新手来说好是蛮有帮助的学习!用于其它自用也是可以的,比如说毕业设计等等啦!

2008-09-17

空空如也

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

TA关注的人

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