- 博客(762)
- 资源 (16)
- 收藏
- 关注
转载 如何指定GCC的默认头文件路径
http://blog.chinaunix.net/uid-20620288-id-3157119.html下面是使用#include时的一些规则:1)使用2)而用""号包含的头文件会首先搜索当前的工作目录,之后的搜索路径才是和样的路径。3)在unix系统中,一般标准的头文件路径为:/usr/local/include/usr/lib/gcc-lib/target/ve
2013-11-28 14:52:27 1631
转载 C语言全局变量那些事儿
http://coolshell.cn/articles/10115.html 作为一名程序员,如果说沉迷一门编程语言算作一种乐趣的话,那么与此同时反过来去黑一门编程语言就是这种乐趣的升华。今天我们就来黑一把C语言,好好展示一下这门经典语言令人抓狂的一面。我们知道,全局变量是C语言语法和语义中一个很重要的知识点,首先它的存在意义需要从三个不同角度去理解:对于程序员来说,它是一个记录内容
2013-11-27 10:39:41 449
转载 Linux 如何解决共享库的版本控制
http://blog.csdn.net/unbutun/article/details/6362474换句话说,soname不是真实存在的文件,只是在此库中和将来调用此库的文件中保存的一个名字,在加载是去找这个名字,使用时创建一个软连接来指向真实文件,这样真实文件的版本号就可以升级了 Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window
2013-11-20 17:51:31 617
转载 sigsetjmp, siglongjmp
http://blog.csdn.net/ljx0305/article/details/2904221相关函数:longjmp, siglongjmp, setjmp 表头文件:#include 函数定义:int sigsetjmp(sigjmp_buf env, int savesigs) 函数说明:sigsetjmp()会保存目前堆栈环境,然后将目前的地址作一个记号,而在程
2013-11-13 16:55:34 639
转载 由mmap引发的SIGBUS
http://blog.csdn.net/ctthuangcheng/article/details/8916015一直以来都觉得使用mmap读文件是非常高效、非常优雅的做法(参见《从"read"看系统调用的耗时》)。mmap之后,就可以通过内存访问的方式访问到文件里的内容,省去了read这样的系统调用。却不曾想过,mmap以后,如果读文件出错会发生什么……今晚看到一篇介绍apac
2013-11-13 08:44:36 619
转载 Linux 多线程应用中如何编写安全的信号处理函数
http://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,
2013-11-11 14:38:40 506
转载 Linux程序调试--Bus Error
http://blog.csdn.net/zhaoyuping/article/details/8931662Linux程序调试--Bus ErrorBus Error究竟是指什么一 Bus Error,即总线错误。 引发原因: CPU出于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS
2013-11-01 14:17:29 24423
转载 Linux下怎样查看机器配置,及cpu/内存/硬盘使用率
http://blog.csdn.net/rzhzhz/article/details/7247337Linux下怎样查看机器配置啊?cpu/内存/硬盘dmesg显示开机信息。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里dmesg|grep hd
2013-10-26 11:08:29 989
转载 Linux procfs详解
http://blog.csdn.net/rzhzhz/article/details/7247912Linux procfs详解 1.0 proc文件系统总览 在类Unix系统中体现了一种良好的抽象哲学,就是几乎所有的数据实体都被抽象成一个统一的接口--文件来看待,这样我们就可以用一些简单的基本工具完成大量复杂的操作。在Linux中存在着一类特殊的伪文件系统,用于使用与文
2013-10-26 11:07:30 3855
原创 linux中send函数MSG_NOSIGNAL异常消息
linux下当连接断开,还发数据的时候,不仅send()的返回值会有反映,而且还会向系统发送一个异常消息,如果不作处理,系统会出BrokePipe,程序会退出,这对于服务器提供稳定的服务将造成巨大的灾难。为此,send()函数的最后一个参数可以设MSG_NOSIGNAL,禁止send()函数向系统发送异常消息
2013-10-17 13:31:29 12349
转载 linux下释放cache内存
http://blog.csdn.net/yysdsyl/article/details/2453206细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.先来说说free命令[root@server ~]#
2013-10-09 11:22:43 609
转载 localtime返回值造成的一个bug
http://blog.csdn.net/qqwx_1986/article/details/5959096 最近写了下面的代码 time_t _time = (time_t)lastUpdTime;;//lastUpdTime从某处加载的 tm *tptime = localtime(&_time); time_t now; time(&now);
2013-10-09 08:45:31 2662
转载 RISC 、 CISC 和 ARM处理器
http://blog.csdn.net/shenbin1430/article/details/4406749RISC(Riduced Instruction Set Computer)精简指令集计算机CISC(Complex Instruction Set Computer)复杂指令集计算机 所谓"体系结构",是指程序员在某CPU上进行程序设计时能够使用的处理器资
2013-10-08 09:35:47 1275
转载 Bus Error究竟是指什么
http://daimajishu.iteye.com/blog/1089727Bus Error究竟是指什么?Bus Error,即总线错误。引发原因:CPU处于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS信号给进程,使进程产生 core dump。RISC包括SPARC(一种微处理器架构)都是这种类型的芯片。x8
2013-09-28 10:07:08 15857
转载 关于函数strtok和strtok_r的使用要点和实现原理
http://blog.csdn.net/liuintermilan/article/details/6280816strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要的,winxp+vc6.0,一个极端平民化的实验环境。本文中使用的源代码大部分来自于网络,我稍加
2013-09-12 17:31:03 586
转载 CLEANMARKER node found at 0x0042c000 的解决方法
http://blog.csdn.net/qiaoliang328/article/details/4724800如果挂载jffs2的时候,出现类似于:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0的问题,则见到网上说的办法:在嵌入式Linux系统中挂载 jffs2 根文件系统二、制
2013-09-05 11:12:42 1933
转载 too many open files
http://blog.csdn.net/jiafu1115/article/details/6697084 运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、
2013-08-30 15:24:29 599
转载 Linux应用程序之文件锁操作
http://blog.csdn.net/lida2003/article/details/7267226Linux下文件锁操作主要是通过以下两个API接口来完成的。[cpp] view plaincopyprint?#include int flock(int fd, int operation); #include int flo
2013-08-28 14:10:11 681
转载 Linux 2.6 中的文件锁
http://www.ibm.com/developerworks/cn/linux/l-cn-filelock/黄 晓晨 ([email protected]), 软件工程师, IBM黄晓晨,软件工程师,目前在 IBM 开发中心从事 system Z 的 automation support 等相关工作。冯 锐 ([email protected]), 软件工程师
2013-08-28 14:05:58 588
转载 C语言中如何使用宏 包括单双井号 可变参数
http://blog.csdn.net/skywalkzf/article/details/5260379C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其
2013-08-28 13:37:17 586
转载 linux 文件描述符表 打开文件表 inode vnode
http://blog.csdn.net/kennyrose/article/details/7595013在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数。Linux中规定每个进程能最多能同时使用NR_OPEN个文件描述符,这个值在fs.h中定义,为1024*1024(2.0版中仅定义为25
2013-08-28 11:49:08 824
转载 函数返回类型为指针类型时的一些问题
http://blog.csdn.net/tigerjibo/article/details/74255711.先看程序:#includechar *returnStr(){ char *p = “tigerjibo”; return p;}int main(){ char*str;
2013-08-15 16:20:05 548
转载 Linux下使用system()函数一定要谨慎
曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它
2013-08-07 16:08:25 601
转载 linux检测网线插拔状态
http://blog.csdn.net/ufo714/article/details/8889759Shell查看网线插拔状态:使用ifconfig命令,如果含有“RUNNING”,说明网线接入,否则就没有。例:ifconfigifconfig eth0ifconfig eth0|grep "RUNNING"============================
2013-08-06 15:54:40 5632 1
转载 linux检查网线是否插入
检查网线是否插入可以查看/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
2013-08-06 15:06:25 2437
转载 从语句 char* p="test" 说起
http://blog.csdn.net/haoel/article/details/1395358从语句 char* p="test" 说起 陈皓 我相信,使用C/C++多年的人对下面这个字符串赋值语句都不会陌生吧。 char* p = "test"; 同时,我也相信,各位在使用这种语句后吃过很多苦头也不少吧?只要你想利用
2013-08-01 16:51:14 513
转载 滑动窗口机制
http://blog.csdn.net/yujun00/article/details/636495(1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送
2013-08-01 10:43:28 1007
转载 滑动窗口机制
http://blog.csdn.net/yujun00/article/details/636495ARQ与滑动窗口概念 滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。 自动重传请求(Automatic Repeat-reQuest,
2013-08-01 10:38:16 16482
转载 C语言sscanf函数的总结
http://blog.csdn.net/gzshun/article/details/7081736/***************************************************** ** Name : sscanf.c ** Author : gzshun ** Version : 1.0 ** Date
2013-07-31 14:47:11 807
转载 /proc/uptime
http://blog.csdn.net/zhangfn2011/article/details/8804611uptime命令是用来查询linux系统负载的!用法:直接输入uptime即可.另外还有一个参数 -v是用来查询版本的[root@ localhost]$ uptime –V procps version 3.2.7以下显示输入uptime的信息:04:0
2013-07-31 11:32:17 753
转载 内存字节对齐详解
http://blog.csdn.net/arethe/article/details/2548867一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
2013-07-31 09:47:49 451
转载 DMZ及其设置相关
一,什么是DMZDMZ(Demilitarized Zone)即俗称的非军事区,与军事区和信任区相对应,作用是把WEB,e-mail,等允许外部访问的服务器单独接在该区端口,使整个需要保护的内部网络接在信任区端口后,不允许任何访问,实现内外网分离,达到用户需求。DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web、Mail、FTP等。这样
2013-07-30 13:34:39 1416
转载 C/C++中的NULL
NULL表示空指针,用于表示一个无效的指针,它的值为0(早期C语言的实现中可能有非0空指针,现在已经不用)。对指针置NULL即标记指针无效,可以通过判断指针是否等NULL而防止指针的非法访问。 NULL在C/C++标准库中被定义为一个宏,一般为: #define NULL ((void*)0) /*C中的“标准”写法,NULL被替换为一个void*类型的指针右值,值等于0;由
2013-07-26 10:43:58 646
转载 关于udelay(); mdelay(); ndelay(); msleep();
在Linux Driver开发中,经常要用到延迟函数:msleep,mdelay/udelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的.mdeday还忙等待函数,在延迟过程中无法运行其他任务.这个延迟的时间是准确的.是需要等待多少时间就会真正等待多少时间.而msleep是休眠函数,它不涉及忙等待.你如果是msleep(10),那实际上延迟的时间,大部分时候是要多于1
2013-07-26 09:52:19 950
转载 epoll详解
http://blog.csdn.net/xiajun07061225/article/details/9250579什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44
2013-07-15 17:04:51 563
转载 linux下关于结构体stat的一些应用
http://blog.csdn.net/xiakan008/article/details/5903879 前言: 初学Linux编程,相信很多朋友都和我一样,对于在Linux中如何获得文件相关属性,如文件大小、最后访问(读)时间、最后修改(写)时间、创建时间或最后更改(属性更改)时间等等存在着疑虑,花了点时间探究了下,发现其中的知识点挺多的,不是想象中的那么简单,
2013-07-15 16:44:43 512
转载 nginx 服务并发过10万的linux内核优化配置
http://michaelkang.blog.51cto.com/1553154/1074318以下linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一下,如有那位高人看到配置上有问题,请给与指出!# Controls the use of TCP syncookies#表示开启重用。允许将TIME-WAIT sockets重新用于新
2013-07-15 15:22:57 488
转载 内核中的同步与任务调度
http://www.kerneltravel.net/jiaoliu/001.htm内核中的同步与任务调度本文作者:康华:计算机硕士,主要从事Linux操作系统内核、Linux技术标准、计算机安全、软件测试等领域的研究与开发工作,现就职于信息产业部软件与集成电路促进中心所属的MII-HP Linux软件实验室。如果需要可以联系通过[email protected]联系他。
2013-07-15 15:21:44 616
转载 linux异步IO编程实例分析
http://rdc.taobao.com/blog/cs/?p=1583#more-1583在Direct IO模式下,异步是非常有必要的(因为绕过了pagecache,直接和磁盘交互)。linux Native AIO正是基于这种场景设计的,具体的介绍见:KernelAsynchronousI/O (AIO)SupportforLinux。下面我们就来分析一下AIO编程的相关知
2013-07-15 14:52:45 3733
转载 Linux native AIO与eventfd、epoll的结合使用
在前面的示例libaio_test.c和native_aio_test.c中,可以看到对磁盘aio请求(本文的aio都指此类)的使用有阻塞等待,这明显之处为对io_getevents()函数(当然,其它函数,比如io_submit()也有一定程度的阻塞)的调用,它会等待并获取已完成的io请求,如果当前没有或少于指定数目的io请求完成,那么就会等待直到timeout。io_getevents()
2013-07-15 14:50:26 3584
C语言编程修养
2011-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人