C语言
文章平均质量分 76
cnctloveyu
这个作者很懒,什么都没留下…
展开
-
优化屏障和内存屏障
转自:http://blog.chinaunix.net/u3/93713/showart_2061476.html 优化屏障和内存屏障 优化屏障 编译器编译源代码时,会将源代码进行优化,将源代码的指令进行重排序,以适合于CPU的并行执行。然而,内核同步必须避免指令重新排序,优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指转载 2010-04-14 19:46:00 · 13939 阅读 · 0 评论 -
Linux下Socket编程
转自:http://www.cnitblog.com/zouzheng/articles/25019.html什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计转载 2009-06-13 16:43:00 · 708 阅读 · 0 评论 -
linux下gdb单步调试(下)
转自:http://hi.baidu.com/hust_chen/blog/item/64f3ad458b690b85b2b7dcf0.html2008-12-06 21:13四、源代码的内存你可以使用 info line 命令来查看源代码在内存中的地址。 info line 后面可以跟 “ 行号 ” , “ 函数名 ” , “ 文件名 : 行号 ” , “转载 2009-06-13 17:58:00 · 1508 阅读 · 0 评论 -
linux下gdb单步调试(中)
转自:http://hi.baidu.com/hust_chen/blog/item/4bb7a5009b543c011d9583f0.html2008-12-06 21:12一、设置断点( BreakPoint ) 我们用 break 命令来设置断点。正面有几点设置断点的方法: break 在转载 2009-06-13 17:57:00 · 1749 阅读 · 0 评论 -
C语言里面的嵌套声明的读法
转自:http://blog.csdn.net/hikaliv/archive/2009/06/09/4255124.aspxint (*base[2])[2];base是一个数组,这个数组有2个元素,每个元素都是一个指针,这些指针所指向的对象是具有两个int元素的数组 C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一转载 2009-06-10 09:22:00 · 963 阅读 · 0 评论 -
Linux select函数(二)
转自:http://blog.csdn.net/lanmoshui963/archive/2008/03/18/2194700.aspxPart 2:select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select转载 2009-06-04 14:58:00 · 1509 阅读 · 0 评论 -
linux下的Select函数(一)
转自:http://blog.csdn.net/lanmoshui963/archive/2008/03/18/2194607.aspx part1:Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是转载 2009-06-04 14:56:00 · 866 阅读 · 0 评论 -
Linux环境进程间通信 共享内存(上)
转自:http://blog.chinaunix.net/u2/60641/showart.php?id=495395创建于: 2008-03-13 16:04:26,修改于: 2008-03-13 16:07:59 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进转载 2009-06-04 14:38:00 · 604 阅读 · 0 评论 -
Linux环境进程间通信 共享内存(下)
转自:http://blog.chinaunix.net/u2/60641/showart_495405.html创建于: 2008-03-13 16:08:33,修改于: 2008-03-13 16:08:33 在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系统V共享内存指的是把所有共享数据放在共享内转载 2009-06-04 14:34:00 · 465 阅读 · 0 评论 -
Linux内核-双向循环链表代码分析
转自:http://hi.baidu.com/chenponder/blog/item/d1dd9f5c9becf047faf2c0b5.html2008-02-28 12:51-------------双向循环链表---------------------------来源于:list.h设计思想:尽可能的代码重用,化大堆的链表设计为单个链表。链表的构转载 2009-06-04 13:54:00 · 879 阅读 · 0 评论 -
socket编程之connect非阻塞模型-初探
转自:http://hi.baidu.com/kelz/blog/item/14d14c4f726f3a01b3de05a3.html2009-06-05 10:46说明:本文所说的相关技术已经很陈旧了,实在不适合用“初探”这个词,但是于我个人而言,却又的确是初探,现总结出来,分享之。本文难免有错漏之处,还请各位高人斧正,别直接拿斧子找我。:)另感谢Neill转载 2009-06-13 16:47:00 · 3506 阅读 · 0 评论 -
connect系统调用
转自:http://hi.baidu.com/linux_kernel/blog/item/ba9c32fad482fe1fa8d311d7.html下面是connect系统调用的函数原型: #include #include int connect( int sockfd, const struct sockaddr *serv_addr, s转载 2009-06-13 16:52:00 · 2438 阅读 · 0 评论 -
linux下gdb单步调试(上)
转自:http://hi.baidu.com/hust_chen/blog/item/8ff7811135b56b06213f2ef7.html2008-12-06 21:12用 GDB 调试程序GDB 概述————GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC转载 2009-06-13 17:51:00 · 1951 阅读 · 0 评论 -
关于glibc中的内存分配管理
转自:http://blog.chinaunix.net/u/30686/showart_265092.html发表于: 2007-03-26 ,修改于: 2007-04-04在glibc中,使用malloc分配内存时,实际上glibc自己做了相应的堆管理,它先使用brk系统调用,扩展了内存空间,一次最少一个页面4k。进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而转载 2010-03-01 13:37:00 · 4950 阅读 · 0 评论 -
关于C、C++中的const和指针
偶然的因素,对const来了点兴趣,做了一下实验:1. 语法:const、指针 在gcc中, 对于C语言,下面的语句是合法的:const int a=0;int *p=&a; 而C++中,需要手工强制转换才能编译通过: const int a=0; int *p=(int *)&a;2. 既然能原创 2010-01-26 17:28:00 · 1093 阅读 · 0 评论 -
C语言的inline
转自:http://superding.spaces.live.com/Blog/cns!89E842A8485366C7!1137.entry 转以前我用Docbook写的一篇关于C语言inline关键字使用的文章。唉,要是能用docbook直接写Blog就好了。用得越多发现Docbook这个东西真是越好用啊~~ 本文介绍了GCC和C99标准中inline使用上的不同之处。i转载 2010-01-21 10:01:00 · 580 阅读 · 0 评论 -
利用pcap编写自己的sniffer程序
转自:http://blog.csdn.net/dangdanding/archive/2004/05/17/22419.aspx Programming with pcapTim Carstenstimcarst at yahoo dot comThe latest version of this document can be found at http:/转载 2009-07-04 16:22:00 · 1451 阅读 · 0 评论 -
Linux程序设计——用getopt处理命令行参数
转自:http://hi.baidu.com/52hack/blog/item/398a98522c972e060df3e35f.html Linux下很多程序甚至那些具有图形用户界面(graphical userinterface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用转载 2009-07-04 16:46:00 · 797 阅读 · 0 评论 -
不用syscall table的方法来截获系统调用的方法的分析
转自:http://www.cngr.cn/article/63/390/2006/2006071916866.shtml 前言: 拿到quack给我的这个文章真是很巧,正在整理分析linux系统调用的实现源代码,所以先翻译一下这 篇文章,然后谈一些自己的想法,文章的实现代码是基于2.0.x内核的,这个code在2.2.x内核上也可以编 译,主要看转载 2009-07-04 15:25:00 · 1075 阅读 · 0 评论 -
回调函数举例
转自:http://blog.163.com/william_djj@126/blog/static/351665012009324114710982/ 1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用转载 2009-07-04 15:21:00 · 4023 阅读 · 0 评论 -
libpcap函数库详细介绍
转自:http://blog.csdn.net/zjl_1026_2001/archive/2008/03/21/2202436.aspx Libpcap开发集介绍 libpcap是一个C语言库,libpcap的英文意思是 Packet Capturelibrary,即数据包捕获函数库,其功能是通过网卡抓取网络以太网中的数据包。这个库为不同的平台提供了一致的c函数编程接口,转载 2009-06-26 20:51:00 · 1051 阅读 · 1 评论 -
使用 GDB 调试多进程程序
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/ 级别: 中级田 强 ([email protected]), 软件工程师, IBM中国软件开发中心2007 年 7 月 30 日GDB 是 linux 系统上常用的调试工具,本文介绍了使用 GDB 调试多进程程序的几种方法,并对各种方法进行比较。转载 2009-06-13 18:52:00 · 911 阅读 · 0 评论 -
Yacc使用
转自:http://hi.baidu.com/xingxing_whu/blog/item/0aa02713dc25ab2bdd5401e8.html2009-05-07 15:121.概念yacc使用巴克斯范式(BNF)定义语法,能处理上下文无关文法(context-free)。出现在每个产生式左边(left-hand side:lhs)的符号是非终端符号,出现在产生式右边(right-ha转载 2009-06-05 14:28:00 · 2370 阅读 · 0 评论 -
关于C语言中函数调用和参数传递机制的探讨
转自:http://bbs.bccn.net/thread-106533-1-1.html 2006-12-1 12:51函数,相信许多人也知道其重要性;一个文件往往由一个或者多个函数构成的。然而可能许多人还不知道函数调用的一些深层问题,所以我写的这篇文章一来是应了一个好朋友的要求而写,二来希望一些朋友能够从我这篇文章了解函数调用的机制。但是并不是每个人都可以完全转载 2009-06-02 15:30:00 · 1156 阅读 · 1 评论 -
堆栈溢出从入门到提高
转自:http://www.jiaonan.net/html/2007/06/20070624034620915.htm入门篇 2007-6-24 15:46:20本讲的预备知识: 首先你应该了解intel汇编语言,熟悉寄存器的组成和功能。你必须有堆栈和存储分配方面的基础知识,有关这方面的计算机书籍很多,我将只是简单阐述原理,着重在应用。其次,你转载 2009-06-02 15:38:00 · 12206 阅读 · 1 评论 -
LINUX进程间隔定时器itimer
转自:http://hi.baidu.com/wzbob/blog/item/dec68f8255391690f703a66f.html系统时钟硬件与LINUX时间表示 之 进程间隔定时器itimer7 、进程间隔定时器itimer 所谓“间隔定时器(IntervalTimer,简称itimer)就是指定时器采用“间隔”值(interval)来作为计时方式,当定时器启动后,转载 2009-05-11 11:07:00 · 2162 阅读 · 3 评论 -
fcntl应用于文件记录锁
参考文章:http://blog.mcuol.com/User/zhl168/Article/11232_1.htmhttp://blog.csdn.net/bical/archive/2008/10/03/3014731.aspx fcntl()用来操作文件描述词的一些特性。参数fd代转载 2009-05-06 19:18:00 · 1300 阅读 · 0 评论 -
几个字符串转数字的函数
atol、atoi、strtol类似,最后的l代表长整型,i代表intatol(将字符串转换成长整型数)相关函数 atof,atoi,strtod,strtol,strtoul表头文件 #include定义函数 long atol(const char *nptr);函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再原创 2009-04-28 10:16:00 · 1014 阅读 · 0 评论 -
Linux常用C函数open和read以及write的使用说明
转自:http://hi.baidu.com/justin_huangjh/blog/item/391b7e3d938feac39f3d623c.htmlopen(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include#include#include 定义函数 in转载 2009-04-28 10:14:00 · 1516 阅读 · 0 评论 -
wait和waitpid详解
转自:http://hi.baidu.com/wlzqi/blog/item/208cebc4b1c02dab8326ac79.html wait的函数原型是: #include /* 提供类型pid_t的定义 */ #include pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进转载 2009-04-27 15:38:00 · 1448 阅读 · 0 评论 -
likely,unlikely宏与GCC内建函数__builtin_expect()
先罗嗦几句最近在读linux 2.6 内核,虽然以前已经看了很多相关的知识,>也看了2,3遍,但读2.6内核仍然感到很吃力。面对2.6如此庞大的内核,信心真的不是很足,而且好像 也没有很好的、有帮助的论坛来一起探讨,哎!现在正在边看>,边看最新的内核,自>出版以来,内核已经有了很多的变化,好难读啊!如果这样读 下去算不算“皓首穷经”呢,不得而知了!言归正传在读linux/kernel/fork.c转载 2009-04-19 12:16:00 · 1161 阅读 · 0 评论 -
C字符串操作(转)
C字符串操作(转)注:文中的几个大小写不敏感比较函数,原文用的是stricmp等,后来发现linux的std库没有,改为strcasecmp系列。函数名: strcpy功 能: 拷贝一个字符串到另一个字符串用 法: char *strcpy(char *destin, char *source);程序例: #i nclude #i nc转载 2009-04-08 15:05:00 · 20085 阅读 · 0 评论 -
《 Unix环境高级编程 》笔记
《 Unix环境高级编程 》笔记 本书全面介绍了UNIX系统的程序设计界面—**提供的许多函数。 前15章着重于理论知识的阐述,主要内容包括**。 在此基础上,分别按章介绍了多个应用实例,包括如何**等。译者序(电子版无)译者简介(电子版无)前言(电子版无)【第1章 UNIX基础知识】一、操作系统为程序提供转载 2009-03-07 14:23:00 · 3024 阅读 · 1 评论 -
C语言中main函数的参数
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组转载 2009-02-18 14:39:00 · 36357 阅读 · 0 评论 -
linux下精密定时器
转自:http://blog.163.com/hong_nt/blog/static/10468917120081130103632925/软件定时器的主要功能是实现状态机的超时机制和实现基于超时的计数功能。由于协议状态机运行于Linux内核之上,也就是说在用户态运行。在Linux系统中,用户态应用程序只能调用三个定时器:ITIMER_REAL、ITIMER_VIRTUAL和ITIME转载 2009-05-11 11:24:00 · 845 阅读 · 0 评论 -
Linux模块编程
转自:http://linux.chinaunix.net/techdoc/develop/2008/03/07/982180.shtml摘要Linux内核模块编程的资料有些纷繁复杂,有的过于简单,有的过于庞杂,我试图用笔记的形式想读者展示怎样来进程Linux模块编程,力图做到简明扼要,这篇文章也是作为本人备忘的资料,所以有些地方过于简略是难免的。本来这篇文章的目的就是让用户知其然转载 2009-05-12 19:13:00 · 1354 阅读 · 0 评论 -
Linux内核模块编程
转自:http://www.sudu.cn/info/html/edu/20070101/287563.html来源: ChinaUnix博客 作者: ChinaUnix博客 发布时间:2007-01-01 18:21:00简介模块(module)是在内核空间运行的程式,实际上是一种目标对象文件,没有链接,不能独立运行,不过能装载到系统中作为内核的一部分运行,转载 2009-05-12 20:00:00 · 3568 阅读 · 0 评论 -
用户空间和内核空间传递数据:get_user;put_user;copy_to_user;copy_from_user
转自:http://hi.baidu.com/wjq_qust/blog/item/0f8d8cd6a6ca782d07088bdb.html http://hi.baidu.com/wjq_qust/blog/item/e14c2ba4e090eff59052eed9.html1. put_userNameput_us转载 2009-06-02 11:10:00 · 6091 阅读 · 0 评论 -
打印调试技术 printk klogd dmesg
转自:http://blog.chinaunix.net/u/19573/showart_1854571.html4.2.1. printk#include printk(KERN_CRIT"error %s,%i",__FILE__,__LINE__);注:1). printk函数中能够指定优先级,假如printk没有指定优先级,采用默转载 2009-05-25 13:54:00 · 5369 阅读 · 0 评论 -
Linux 中 x86 的内联汇编
转自:http://www.ibm.com/developerworks/cn/linux/sdk/assemble/inline/index.html 级别: 初级 Bharata B. Rao ([email protected] )IBM Linux 技术中心,IBM 软件实验室,印度 2001 年 3 月 01 日 Bharata B. Rao 提供了在 Linux转载 2009-05-26 17:39:00 · 683 阅读 · 0 评论