linux c/c++
cherish_2012
这个作者很懒,什么都没留下…
展开
-
二进制数据打印
char strtmp[1024*6] = {'\0'};for( int i = 0 ; i {char tmp[128] = {'\0'};if( (i+1) % 16 != 0 )sprintf(tmp," %2x ",0xff & nmsg.buf[i] );elsesprintf(tmp,"\n %2x ",0xff & nmsg.buf[i] );str原创 2014-03-13 18:07:45 · 1528 阅读 · 0 评论 -
Linux C 多线程编程 -- 互斥锁与条件变量
一、互斥锁互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。 1. 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init. 对于动态分配的互斥量,转载 2014-11-21 09:59:53 · 485 阅读 · 0 评论 -
测试linux下 fprintf fwrite write mmap 等写文件的速度
http://blog.csdn.net/yaxf999/article/details/7532482转载 2014-11-27 10:12:44 · 1268 阅读 · 0 评论 -
valgrind 的使用简介
目录(?)[-]一 valgrind是什么valgrind的结构图Valgrind包括如下一些工具linux下内存空间布置Valgrind 使用Valgrind 使用举例一使用未初始化内存问题内存读写越界内存覆盖动态内存管理错误内存泄漏 zz自 http://blog.csdn.net/destina/article/details/6198443转载 2014-11-29 10:33:26 · 447 阅读 · 0 评论 -
Linux守护进程的编程实现
Linux 守护进程的编程方法 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本转载 2014-12-02 20:05:25 · 451 阅读 · 0 评论 -
Linux系统编程之fcntl
功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd转载 2014-12-08 13:48:01 · 472 阅读 · 0 评论 -
Linux下gcc编译生成动态链接库*.so文件并调用它
动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一点帮助。1、动态库的编译下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件转载 2014-12-09 15:22:44 · 537 阅读 · 0 评论 -
linux C++/C 动态链接库使用
有关动态链接库的概念,何时使用,使用的优点就不在此多多解释了,下面,简单记录一下使用的具体过程。1、涉及到的库,该库中提供了四个轻松调用动态链接库的API a) void *dlopen (const char *so_file_path, int open_mode) dlopen是打开动态链接库文件的API,这里so_file_path是so文件的路径,open_mode是打转载 2014-12-09 11:18:58 · 604 阅读 · 0 评论 -
linux---makefile
1,makefile 中的 wildcard 与 patsubst 函数makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后用关括号结束。例如,在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。你可以像下面所示使用原创 2014-12-10 09:43:28 · 336 阅读 · 0 评论 -
Linux下gcc编译生成动态链接库*.so文件
动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一点帮助。1、动态库的编译下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件转载 2014-09-03 23:22:06 · 1010 阅读 · 0 评论 -
inux下gdb单步调试(上)
用 GDB 调试程序GDB 概述————GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC 、 BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC 、 BCB 的图形化调试器更强大的功能。所谓 “ 寸有所长,尺有所短 ” 就是这个道理。一般来说,转载 2014-05-28 11:22:16 · 503 阅读 · 0 评论 -
this指针的用法和含义
(1)this指针的含义及其用法: 1. this指针是一个隐含于每一个成员函数中的特殊指针。它指向正在被该成员函数操作的那个对象。2. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。3. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。 4转载 2014-03-13 17:58:31 · 6553 阅读 · 0 评论 -
深入探讨C++中的引用
摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面透彻地阐述。 关键词:引用,const,多态,指针 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好转载 2014-03-13 17:55:33 · 416 阅读 · 0 评论 -
qsort的使用
功 能: 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数: 1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序使用qsort()排序转载 2014-04-05 15:40:48 · 456 阅读 · 0 评论 -
C语言之#define用法
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1.1 #define的概念#define命令转载 2014-03-15 00:34:39 · 667 阅读 · 0 评论 -
C语言中测试程序运行时间
在c语言中有专门处理系统时间,程序计时等等功能的库,即time.h在time.h中函数clock_t clock( void )可以完成计时功能。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time转载 2014-02-23 14:25:10 · 1169 阅读 · 0 评论 -
crontab使用说明
crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠,实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过crond这个工业级程序转载 2014-03-13 17:04:23 · 533 阅读 · 0 评论 -
命名的强制类型转换
++命名的强制类型转换也称作新式类型转换,也是C语言类型转换的一个演进。看一个C语言的类型转换:1char *hopeItWorks = (char *)0x00ff0000;《C++必知必会》一书把该种类型转换描述成“龌龊”,因为这种类型转换相对于C++的类型转换来说力度要大,大到有时你并不清楚具体发转载 2014-05-28 14:33:25 · 641 阅读 · 0 评论 -
线程同步(Linux_C++)
线程的同步互斥锁,读写锁,条件变量有两种方式创建在 posix 互斥锁,读写锁,条件变量有两种方式创建.静态方式和动态方式.POSIX定义了三个个宏:PTHREAD_MUTEX_INITIALIZER 来静态初始化互斥锁PTHREAD_COND_INITIALIZER 来静态初始化条件变量PTHREAD_RWLOCK_INITIALIZER 来静态初始转载 2015-09-07 23:51:35 · 579 阅读 · 0 评论