![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
文章平均质量分 52
小饼仙子
这个作者很懒,什么都没留下…
展开
-
gdb基本用法
原文连接http://www.douban.com/note/63382036/转载 2014-09-29 10:00:03 · 606 阅读 · 0 评论 -
automake
原文链接http://blog.csdn.net/romandion/article/details/1688258GNU AutomakeFor version 1.3, 3 April 1998David MacKenzie and Tom Tromey 目录介绍通用性概念通用操作深度严格性统一命名机制派生变量转载 2014-12-01 15:33:05 · 954 阅读 · 0 评论 -
Automake系列( 四)安装可执行脚本
原创:http://blog.chinaunix.net/uid-686647-id-3462422.html有些程序在发布的时候,除了编译的二进制可执行程序以外,还需要安装一些可执行的脚本。安装这些可执行脚本,有两种方式:1.安装可执行脚本到bin目录或者是sbin目录比如我这里有个脚本在源代码目录的./tools/cm.pl。那么在Makefile.am中增加如下语句:转载 2014-12-01 16:30:20 · 887 阅读 · 0 评论 -
将32位代码向64位平台移植的注意事项4
原文连接:http://tc.uc.cn/v=1&src=l4uLj8XQ0J2TkJjRjJaRntGckdCbj5CQk9Cdk5CY0IzQnZOQmKDLzseey57Hz8%2FOz8%2FPnMnO0ZeLkpM%3D&restype=1&ucshare=1&ucshareplatform=-1&country=cn&os=adr&pf=jdaEneDg89WB0I2d5OP2zo转载 2014-12-11 08:52:22 · 794 阅读 · 0 评论 -
<学习正则表达式>(2)
1.取反方法a,字母大写。比如 \d 表示匹配所有数字 ,\D 表示匹配所有非数字字符方法b,^号 ,比如[1]表示匹配数字1,[^1]表示匹配除1以外所有数字和非数字2.\w 匹配单词,即 字母,数字,下划线\W 与\w相反3.\0空字符4.\x xx十六进制5.[\b]退格字符6.\s 或者[\r\n\t] 匹配空白符,其中 \t 表示制原创 2014-12-08 14:41:31 · 437 阅读 · 0 评论 -
32位程序移植到64位需要考虑的问题
(翻译自:http://developers.sun.com/prodtech/cc/articles/ILP32toLP64Issues.html) 概述从32位到64位,根本性的区别在于两种数据类型发生了变化:long和pointer。在32位环境下,顾名思义,两者长度都是32位,也就是4个字节;而在64位环境下,都是8个字节。所以,当你把pointer或者long型数据赋转载 2014-12-10 09:19:46 · 765 阅读 · 0 评论 -
将32位代码向64位平台移植的注意事项
原文连接:http://www.51cto.com/art/200604/24942.htm新近的64位平台在二进制上与32位应用程序兼容,这意味着可以非常简单地移植现有的程序。许多目前在32位平台上运行良好的程序也许不必移植,除非程序有以下要求:·需要多于4GB的内存。·使用的文件大小常大于2GB。·密集浮点运算,需要利用64位架构的优势。·能从64位平台的优化数学库中受转载 2014-12-10 09:45:50 · 582 阅读 · 0 评论 -
将32位应用程序转换成64位应用程序:注意事项
将 32 位应用程序转换成 64 位应用程序时的主要问题是 int 类型相对 long 和指针类型的大小发生了变化。将 32 位程序转换成 64 位程序时,只有 long 类型和指针类型的大小从 32 位转换成 64 位;整数类型 int 的大小仍然保持为 32 位。这导致将指针类型或 long 类型赋值给 int 类型时会发生数据截断问题。而且,将使用小于 int 类型的表达式赋值给 unsig转载 2014-12-11 09:03:21 · 11947 阅读 · 0 评论 -
gcc编译选项
-E:只进行预处理,不编译 -S:只编译,不汇编 -c:只编译、汇编,不链接 -g:包含调试信息 -I:指定include包含文件的搜索目录 -o:输出成指定文件名 高级选项 -v:详细输出编译过程中所采用的每一个选项 -C:预处理时保留注释信息 -ggd转载 2014-12-11 09:01:52 · 1015 阅读 · 0 评论 -
将32位代码向64位平台移植的注意事项1
随着低成本64位平台的来临,加上内存和硬盘价格的不断下跌,无疑为32位程序向64位硬件的移植又加了一把劲,那些科学运算、数据库、消耗大量内存或密集浮点运算的程序也搭上了这一顺风车。在本文中,主要讨论向64位平台移植现有32位代码时,应注意的一些细小问题。 新近的64位平台在二进制上与32位应用程序兼容,这意味着可以非常简单地移植现有的程序。许多目前在32位平台上运行良好的程序也许不必移植,除转载 2014-12-11 08:55:55 · 766 阅读 · 0 评论 -
ac 数据面相关
1. 全局板提供标准linux协议栈,内核进行capwap拆包组包,ipv6相关,另外提供nat,dhcp,iptables,vlan功能。外围板cavium平台,提供基于ipv4的三层转发。2.主备跑 vrrp,但是dhcp 不能主备,需要单独处理。3,ipv 6数据由全局板处理。4.全局板收到qinq,需要解析路有关系,然后将路由,ipv6信息同步给外围板。后续数据外文版转发。原创 2014-12-17 14:28:22 · 558 阅读 · 0 评论 -
Autoconf
AutoconfCreating Automatic Configuration ScriptsEdition 2.13, for Autoconf version 2.13December 1998by David MacKenzie and Ben Elliston 目录介绍创建configure脚本编写`co转载 2014-12-01 15:34:46 · 1421 阅读 · 0 评论 -
使用 OpenSSL API 进行安全编程
http://www.ibm.com/developerworks/cn/linux/l-openssl.html转载 2014-11-11 11:18:37 · 1085 阅读 · 0 评论 -
华为C语言编程规范
1 排版2 注释3 标识符命名4 可读性5 变量、结构6 函数、过程7 程序效率8 质量保证9 代码编辑、编译、审查10 代码测试、维护11 宏转载 2014-10-24 11:37:24 · 1212 阅读 · 0 评论 -
ubuntu server 10.4下的DHCP服务配置
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xuchengji.blog.51cto.com/160472/348570实验目标:(1)完成一个基本的DHCP服务配置(给客户机分配默认网关,域名,子网掩码,广播地址),给一特定主机分配固定的IP(2)给DHCP服务器安装两块网卡,创建两个作用域,也就是多作用域转载 2014-10-11 11:39:49 · 976 阅读 · 0 评论 -
sokcet常用编程函数
1.设置发送超时和接收超时。一般可以考虑select模型。如果用socket的recvfrom或者sendto原创 2014-09-24 11:22:29 · 699 阅读 · 0 评论 -
linux 下常用函数
1,字符串转数值eg:0xac原创 2014-11-05 17:23:33 · 577 阅读 · 0 评论 -
关于FIN_WAIT1
前些天,一堆人在 TCPCopy 社区里闲扯蛋,有人提了一个问题:FIN_WAIT1 能持续多久?引发了一场讨论,期间我得到斌哥和多位朋友的点化,受益良多。让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况:TCP Close看图可知,主动关闭的一方发出 FIN,同时进入 FIN_WAIT1 状态,被动关闭的一方响应 ACK,从而使主动关闭的一方转载 2014-11-07 08:31:45 · 1330 阅读 · 0 评论 -
linux中用C语言对环境变量设置
背景:做svn自动更新成root用c写的,但是其是root后,环境变量的HOME变量还是原来用户,需要转下,于是查了下C设置环境变量,达到了尽管能通过chmod u+s resetServerAndOptSVN成root,但是这种root里的$_ENV还是原来用户的环境变量。 这个c调用PHP时,其PHP用:print_r($_EVN);还是原来普通用户的环境变量,如下: [HOME]转载 2014-11-07 08:34:16 · 3782 阅读 · 0 评论 -
__attribute__((packed))详解
http://blog.chinaunix.net/uid-25768133-id-3485479.html转载 2014-11-24 17:32:13 · 1556 阅读 · 0 评论 -
C++coder必读---最详细Autoconf和automake说明(中英文翻译参考文档)
原文链接http://www.cnblogs.com/konyel/articles/1272101.html一,内容简介 *Autoconf和automake用于何处和他们所担任的角色。*为什么要使用Autoconf和Automake。*简要的介绍所有工具。*一些高级的主题。 1简要的介绍所有工具。我们来思考为什么有以下这么多的工具和他们各自扮演的角色。转载 2014-12-01 15:13:41 · 1206 阅读 · 0 评论 -
linux 下自动化makefile生成
1.使用automake时如何进行编译参数的设置如果是 C 程序,执行configure生成Makefile时输入 ./configure CFLAGS=如果是 C++ 程序,执行configure生成Makefile时输入 ./configure CXXFLAGS=可执行 ./configure --help 查看帮助。2.如何实现针对不同数据文件拷贝如不同的目录原创 2014-12-10 10:30:18 · 534 阅读 · 0 评论 -
将32位代码向64位平台移植的注意事项3
联合体问题(Union) 当联合本中混有不同长度的数据类型时,可能会导致问题。如例3是一个常见的开源代码包,可在ILP32却不可在LP64环境下运行。代码假定长度为2的unsigned short数组,占用了与long同样的空间,可这在LP64平台上却不正确。 例3:typedef struct { unsigned short bom; unsigned short转载 2014-12-11 08:57:42 · 607 阅读 · 0 评论 -
主机字节序和网络字节序
1 字节序由于不同的计算机系统采用不同的字节序存储数据,同样一个4字节的32位整数,在内存中存储的方式就不同. 字节序分为小尾字节序(Little Endian)和大尾字节序(Big Endian), Intel处理器大多数使用小尾字节序, Motorola处理器大多数使用大尾(Big Endian)字节序;小尾就是低位字节排放在内存的低端,高位字节排放在内存的高端。例如一个4转载 2015-04-01 17:14:55 · 497 阅读 · 0 评论 -
Linux最大线程数及最大进程数
查看最大线程数:cat /proc/sys/kernel/threads-maxulimitUser limits - limit the use of system-wide resources.Syntax ulimit [-acdfHlmnpsStuv] [limit]Options -S Change and repor转载 2015-04-07 11:36:54 · 622 阅读 · 0 评论 -
C语言单元测试框架
请参照 List of unit testing frameworks http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C原创 2015-05-05 13:53:22 · 651 阅读 · 0 评论 -
C语言单元测试框架-Check
虽然在UNIX上用C语言做开发已经有一段时间了,但是我不得不承认,自己单元测试做的并不好。恰好最近有新的开发任务,就学习了一些关于测试驱动开发的知识,准备改进自己的单元测试。XP编程已经兴起好一段时间了,也形成了很多优秀的单元测试框架,例如:JUnit,想必使用JAVA的朋友,对该测试框架已经很熟悉了。我记得《程序员》杂志也有一期专门以TDD作为专题。其实,我真的好羡慕JAVA程序员,他们总是有各转载 2015-05-05 13:53:39 · 1233 阅读 · 0 评论 -
Linux平台下的内存泄漏检测
在上面我们介绍了,vs中在代码中“包含crtdbg.h,将 malloc 和 free 函数映射到它们的调试版本,即 _malloc_dbg 和_free_dbg,这两个函数将跟踪内存分配和释放。 此映射只在调试版本(在其中定义了_DEBUG)中发生。 发布版本使用普通的 malloc 和 free 函数。”即为malloc和free做了钩子,用于记录内存分配信息。Linux下面也有原转载 2015-05-13 16:19:05 · 733 阅读 · 0 评论 -
ubuntu14.04 grub2使用
1.一般情况个人编译内核,制作版本后只需要将对应版本放入/boot目录下,然后执行sudo update-grub。 grub2会自动生成配置文件。用户重启系统后,可以根据需要选择登录。同理,如果需要删除某个版本,只要删除/boot目录下版本文件,然后执行sudo update-grub。 grub2会自动生成配置文件。用户重启系统后,可以根据需要选择登录。2.个人定制启动菜单进入原创 2015-05-14 09:33:50 · 989 阅读 · 0 评论 -
GDB调试器使用总结
概述:GDB是linux下调试程序的神器,做为linux程序员,如果不能熟练的使用GDB进行程序调试,那将是很失败的事情。强大的功能使GDB的使用也变得比较复杂,如果是初学者肯定会比繁杂的命令吓到。下面是整理的一些我认为会比较有帮助的部分。下文中以">"开头的命令是linux的shell命令,以"(GDB)"开头的则是GDB内部命令。 0.转储功能(core dump): (1)转载 2015-05-26 17:52:12 · 4836 阅读 · 0 评论 -
第二十章、启动流程、模块管理与 Loader
http://vbird.dic.ksu.edu.tw/linux_basic/0510osloader.php#grub_menulist转载 2015-05-22 17:20:39 · 683 阅读 · 0 评论 -
构建x86内核+ramdisk文件系统相关资料
123转载 2015-05-25 18:12:53 · 864 阅读 · 0 评论 -
setsockopt 的 SO_REUSEADDR标识使用说明
1、当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启动的程序的socket2要占用该地址和端口,你的程序就要用到该选项。 2、SO_REUSEADDR允许同一port上启动同一服务器的多个实例(多个进程)。但每个实例绑定的IP地址是不能相同的。在有多块网卡或用IP Alias技术的机器可以测试这种情况。 3、SO_REUSEADDR允许单个进程绑转载 2015-03-24 16:22:00 · 910 阅读 · 0 评论 -
Linux进程的睡眠和唤醒简析
1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数 schedule()是一个调度函数,转载 2015-03-11 14:35:12 · 522 阅读 · 0 评论 -
将32位代码向64位平台移植的注意事项2
缺少原型的截断 如果一个函数被调用时没有指定函数原型,返回值将是32位的int。不使用原型的代码可能会发生意料之外的数据截断,由此导致一个分割错误。编译器捕捉到了例1中第12行的这个错误。 char *name = (char *) getlogin(); 编译器假定函数返回一个int值,并截短结果指针。这行代码在ILP32数据模型下工作正常,因为此时的int和指针是同样长度,换转载 2014-12-11 08:56:39 · 602 阅读 · 0 评论 -
unixODBC安装(ubuntu + mysql+unixodbc)
这几天真是郁闷死了,基本每天都在编译安装QT和unixODBC,无奈总会出现些莫名其妙的错误。首先,我承认我Linux玩地不熟,但这些开源软件产商之间的兼容性也太差了吧。所以还是制定个标准比较好,大家都遵守一个约定。从这个意义来说,微软的垄断,还是有一定的好处的。 最终QT还是没有安装成功,此前有一个版本,经过小的改动已经能编译安装成功了,不知为什么,后来怎么也安装不上,晕阿。后来发转载 2015-01-19 09:24:30 · 2917 阅读 · 0 评论 -
linux-vdso.so.1介绍
这段时间看Linux内核源码的时候,经常碰到vdso这个东西(像在Feature-fixup中,获取时间等操作时),网上搜了一下,才知道了含义,原来这是Linux为了解决和glibc兼容而想出的绝招啊。下面是从Fedora中文邮件列表转过来的,和大家分享一下。 往往内核添加了一个功能,glibc要花很久才会用上。本来linux那边为这个功能是否进入内核已经吵半天了,glibc这边又要转载 2015-02-28 14:18:39 · 35604 阅读 · 0 评论 -
动态库对应用程序的影响&ldd -u&gcc -Wl,--as-needed
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。二者都使用广泛。本文主要讲动态库方面知识。 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库,使用ldd命令查看 # ldd /bin/lslinux-vdso.so.1 => (0x00007fff597ff000)libsel转载 2015-02-28 11:47:56 · 3073 阅读 · 1 评论 -
linux下自动化makefile生成
1.automake2.cmake原创 2014-08-22 09:56:22 · 796 阅读 · 0 评论 -
automake使用实例
.soconfigure.ac# -*- Autoconf -*-# Process this file with autoconf to produce a configure script.AC_PREREQ([2.69])AC_INIT([FULL-PACKAGE-NAME], [VERSION],原创 2015-03-05 09:18:39 · 657 阅读 · 0 评论