
C/C++
文章平均质量分 62
prettyshuang
这个作者很懒,什么都没留下…
展开
-
C语言字节对齐问题详解(对齐、字节序、网络序等)
一 什么是字节对齐现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序一个接一个地存放,这就是对齐。二 对齐的原因和作用不同硬件平台对存储空间的处理上存在很大的不同。某些平台对特定类型的数据只能从特定地址开始存取,而不允许其在内存中任意存放。例转载 2014-07-21 15:32:28 · 2546 阅读 · 0 评论 -
postgresql libpq C语言网络库接口操作数据库例子
关于libpq各个函数接口的说明,参考:http://www.postgres.cn/docs/9.3/libpq.html例子1:/* * testlibpq.c * * Test the C version of libpq, the PostgreSQL frontend library. */#include #include #include stat原创 2015-11-12 09:23:46 · 1164 阅读 · 0 评论 -
设计模式在C语言中的应用--读nginx源码
市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。是这样吗?设计模式的概念是从建筑领域引入的,本身从没歧视过面向过程编程语言,它只是对一类问题的普遍解决方案而已。面向对象语言因为有类、多态等特点,使得开发者们容易达到:隐藏细节、封装变化,而这与设计模式的目的比较一致,所以大师们爱把设计模式原创 2015-10-26 17:16:59 · 512 阅读 · 0 评论 -
undefined reference to symbol xxxxx和undefined symbol:xxxx错误的原因分析以及解决方法
Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,这里总结一些可能的原因和解决方案,给需要的朋友:说到undefined reference error,先提一下Linux gcc链接规则:编译源代码时,链接的时候查找顺序是:(1) -L 指定的路径, 从左到右依次查找(2) 由环境变量 LIBRARY_PATH 指定的路径,原创 2015-09-23 10:57:46 · 26055 阅读 · 0 评论 -
unix网络编程之getaddrinfo函数详解及使用举例
getaddrinfo函数使用示例如下:(1)根据主机名获取IP地址:#include #include #include #include #include #include #include int main(int argc, char **argv){ if (argc != 2) { printf("Usag: ./a.out hostn原创 2016-01-04 17:04:36 · 6523 阅读 · 0 评论 -
unix网络编程之根据主机名(hostname)或网卡名获取IP地址(三种方法)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //使用getaddrinfo函数,根据hostname获取IP地址int getIpAddrB原创 2016-01-05 13:42:22 · 1752 阅读 · 0 评论 -
C的编译器对内存空间的分配
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局原创 2015-05-05 14:50:16 · 4197 阅读 · 0 评论 -
line: 1: Syntax error: word unexpected (expecting ")")
开发板上运行可执行程序报出错误:line1: 1: Syntax error: word unexpected (expecting ")")解决:1.编译器的问题用arm-linux-gcc编译,可能原来是用gcc编译的。假如是脚本,#!/bin/sh 改 #!/bin/bash试试2.文件完整性重新烧写或上传一遍3.编译命原创 2014-08-04 17:48:20 · 5080 阅读 · 0 评论 -
用C语言(apue)实现 把时间戳转换为国标格式的字符串(2013-09-03 15:36:12)的函数
/*******************************************************************************//***** 函 数 名: char *Time2String(const time_t timep, char *strDest)*** 功能描述: 将时间转换成国标格式的字符串*** 全局变量: *** 输 入:原创 2014-08-04 18:29:04 · 1204 阅读 · 0 评论 -
我的《C陷阱与缺陷》读书笔记
第一章 词法“陷阱”1、 =不同于==if(x = y) break;实际上是将y赋给x,再检查x是否为0。 如果真的是这样预期,那么应该改为:if((x = y) != 0) break; 2、 &和| 不同于 && 和 ||3、词法分析中的“贪心法”编译器将程序分解成符号原创 2014-08-04 17:56:55 · 878 阅读 · 0 评论 -
编译C++程序时报错:hidden symbol ... is referenced by DSO
用g在那个hidden symbol前加 __attribute__((visibility("default")))原创 2014-09-19 18:06:33 · 8128 阅读 · 1 评论 -
linux Daemon程序设计(含步骤、源码、管理)
什么事DDaemon程序,又称为守护进程,通常在系统后台长时间运行,由于没有控制终端而无法与前台交互。Daemon程序一般作为系统服务使用,Linux系统中运行着很多这样的守护进程,如iptables,nfs,ypbind,dhcpd等。Daemon设计原则转载 2014-08-08 17:55:32 · 2172 阅读 · 0 评论 -
使用libboost_filesystem.so库递归查找目录下的文件
#include #include #include "boost/filesystem/operations.hpp"#include "boost/filesystem/path.hpp"using namespace std;using namespace boost::filesystem;void scanFilesUseRecursive(const string&原创 2014-10-11 14:54:02 · 1671 阅读 · 0 评论 -
编译C++程序遇到错误:undefined reference to `*::*
“undefined reference to”的意思是,该函数未定义。 如果使用的是g++,有以下检查方案:如果提示未定义的函数是某个库的函数。检查库是否已经安装,并在编译命令中采用-l和-L参数导入库。如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件,检查函数的或者变量的名字是否正确,是否是因为前后拼写不一致原创 2014-07-10 12:35:52 · 4328 阅读 · 0 评论