随笔分类 - c/c++
摘要:转自:https://blog.csdn.net/icarman/article/details/108647809 GCC 工具链使用 GCC 有很多编译,链接工具,同时还有一些查看工具,方便用户查看生成的object文件,ELF文件信息等。这里简单介绍常用的GCC工具的使用方法。 1. nm:l
阅读全文
摘要:引用自:https://github.com/wwbmmm/blog/wiki/gcc_visibility 问题 最近项目遇到一些问题,场景如下 主程序依赖了两个库libA的funcA函数和libB的funcB函数。示意的代码(main.cpp)如下: #include <cstdio> int
阅读全文
摘要:引用自:http://gotowqj.iteye.com/blog/1926771 链接动态库 如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的配置搜
阅读全文
摘要:Protobuf使用手册 第1章 定义.proto 文件 首先我们需要编写一个 proto 文件,定义我们程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Message。proto 文件非常类似 java 或者 C 语言的数据定义,可以使用C或C++风格的注释。下面是一
阅读全文
摘要:ProtoBuf安装使用说明 ProtoBuf由两个部件组成,一个是protoc,用于编译.proto,生成对应语言的代码;一个是各种语言各种系统对应的库。 1. 安装 1.1. git安装 由于需要开源项目都使用git对代码进行管理,为了使用方便,首先在windows安装git。 目前Git已经可
阅读全文
摘要:ZeroMQ安装说明 安装过程参考地址:http://zeromq.org/intro:get-the-software的说明 安装步骤如下(在安装时参考安装包中的REDEME): (git clone https://github.com/zeromq/libzmq) unzip libzmq-m
阅读全文
摘要:Linux2.6内核中的文件系统变化通知机制一、 引言 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能 够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通知机制,如文件增加、删除等
阅读全文
摘要:引用自:http://blog.csdn.net/wxb_nudt/article/details/2938242C++中的数据类型转换方法总结摘要:本文总结了C/C++中的多种数据类型转换方法,并比较了各自的优劣。给出了推荐的使用建议。从int到char*,或者反过来从char*到int,在C/C++中到底有多少种转换方法呢?符合标准的大概有四种。即C数据转换函数族、sprintf/snprintf/sscanf函数族、字符串流std::stringstream、std::strsteam。不符合标准却又广为使用的包括CString和boost::lexical_cast。本文只讨论符合标准
阅读全文
摘要:引用自:http://www.blogjava.net/wxb_nudt/archive/2007/11/01/157623.html例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar。1前言在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是大部分都是基
阅读全文
摘要:引用自:http://www.blogjava.net/wxb_nudt/archive/2007/11/18/161340.html写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如何解决中文问题。基于以上几点原因,决定写一个在Windows平台下
阅读全文
摘要:引用自:http://www.cnblogs.com/sunwentao/archive/2009/04/21/1440699.htmlC++ dlopen mini HOWTO作者:Aaron Isotton <aaron@isotton.com> 2006-03-16译者:Lolita@linuxsir.org 2006-08-05------------------------------------------------摘要 如何使用dlopen API动态地加载C++函数和类------------------------------------------------
阅读全文
摘要:引用自:http://blog.chinaunix.net/link.php?url=http://www.ibm.com%2Fdeveloperworks%2Fcn%2Flinux%2Fl-cn-signalsec%2Findex.html%3Fca%3Ddrs-cn-0618Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,信号在被处理后应用程序还将正常运行。在编写这类信号处
阅读全文
摘要:引用自:http://blog.csdn.net/qq276592716/article/details/7325250在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些函数不能在信号处理函数中调用;再比如一些函数read、recv等调用时会被异步的信号给中断(interrupt),因此我们必须对在这些函数在调用时因为信号而中断的情况进行处理(判断函
阅读全文
摘要:引用自:http://blog.chinaunix.net/uid-26675482-id-3130583.html守护进程日志的实现syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程 日志主要涉及3个函数,分别是openlog、syslog和closelog函数。表8.4所示为这3个函数的具体信息。表8.4 openlog、syslog和closelog函数头文件<syslog.h>函数形式void openlog(const char *ident, int option, int f
阅读全文
摘要:引用自:http://www.cppblog.com/doing5552/archive/2010/01/16/105819.htmlPosix多线程编程学习笔记(一)—线程基础(1)一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代码。(2) 多个线程可以自动共享相同的
阅读全文
摘要:cat person.cpp #include <iostream>#include <cstring>using namespace std;class Person {public://无参构造函数Person();// 有参构造函数Person(int myage, const char *myname);//析构函数~Person();//拷贝构造函数Person(const Person& b);//赋值函数Person& operator=(const Person& b);//普通成员函数void display();private
阅读全文
摘要:c++ 必看1 在整型对象中存储浮点数时,浮点数将通过截短转换为整数值,例如 int x=0; x=23.6; 执行后,x的值将是23。2 iostream对象cin是使用提取操作符>>的输入流。提取操作符可以从输入流中提取数值。3 在C中,每一个字符串的结尾加一个字符串结束标志,以便系统判断字符串是否结束。’\0’ 为字符串结束标志,’\0’ 是一个ASCII码为0的字符,从ASCII代码表中可以看到ASCII码为0的字符是空操作字符,即它不引起任何控制动作,也不是一个可显示的字符。’\0’是由系统自动添加的。4 strlen的结果未统计’\0’所占用的1个字节。Sizeof的结
阅读全文
摘要:引用自:http://www.newsmth.net/pc/pccon.php?id=10002714&nid=359771之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件<string>。如下:#include<string&g
阅读全文
摘要:vim中去掉每一行的^M这两天在看个新的项目,用vim打开,其中很多代码结尾都有一个^M应该是在windows平台下写的code如何去掉这些东东呢?很简单,用vim的替换就可以了。在vim里面打::%s/[Ctrl-v][Enter]//g说明:Ctrl-v的作用是,使得接着输入的回车键被认为是一个特殊字符,而不是vim命令的结束。
阅读全文
摘要:2010-01-24 17:58 14237人阅读 评论(11) 收藏 举报目录(?)[-]Python C API准备工作:C中内嵌Python获取返回值 利用C扩展PythonPython ctypeswrite by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 我实现“onekeycodehighlighter " 中碰到的一些小问题,需要实现全局快捷键,但是是事实上Qt并没有对全局快捷键提供支持,那么用Qt的话就只能通过Win32Api来完成了,而我,用的是PyQt,还需要用Python来调用win32 API,事实上,
阅读全文