C语言编程知识
文章平均质量分 80
liumang_D
我是一个程序员!
展开
-
我认识的malloc和free
我malloc(buffer),我一定要free(buffer)么?这个答案很多人都说是肯定的,今天我就来把它给否定了,因为我以前也是这种思想,malloc什么就 free什么。先来举个列子:int main(int argc, char *argv[]){ char *buffer = NULL, *str = NULL; char *a = "abcdefghij原创 2009-02-16 12:09:00 · 1187 阅读 · 0 评论 -
2.6.27内核 netlink socket实现内核和用户的通信
三天的努力,终于搞定了自己需要的这种通信机制:由内核态向用户态反馈信息;先看代码,内核的:#include #include #include #include #include #include #include //it include linux/netlink.h#define NETLINK_TEST 17#define M原创 2010-03-24 18:03:00 · 7001 阅读 · 2 评论 -
使用inotify及时发现磁盘丢失插入与否
参考资料: http://www.ibm.com/developerworks/cn/linux/l-ubuntu-inotify/ 先说明一下,上面的参考资料非常好,inotify详细请见上面的参考资料,说几点注意的:inotify对/proc和/sys目录下面的文件不是很有效,也就是说,要监控这两个文件系统下面的文件,请不要使用inotify了,个人意见而已! 下面是监控磁盘插原创 2010-03-16 19:37:00 · 1182 阅读 · 0 评论 -
监听来自内核hotplug的事件(代码)
#include #include #include #include #include #include #include #include #include #include #define UEVENT_BUFFER_SIZE 2048static int init_hotplug_sock(void){ struct soc转载 2010-03-17 09:33:00 · 3802 阅读 · 0 评论 -
让我兴奋的两个命令
昨天在解决客服问题,无意中发现支持售后技术人员在使用如下两个命令: 1、time + cmd 能查看这个cmd运行的时间2、strace + cmd 能跟踪查看(非常喜欢这个命令,哈哈...) strace详解: strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ... [ -ofile ] [ -ppid ] ..原创 2010-03-16 09:24:00 · 1000 阅读 · 0 评论 -
printf特效
给printf的输出加上些特效比如颜色,可以让打印信息更鲜明,在debug的时候特别有用。颜色: #define NONE "/033[m" #define RED "/033[0;32;31m" #define LIGHT_RED "/033[1;31m" #define GREEN "/033[0;32;32m" #define原创 2009-11-30 17:21:00 · 1655 阅读 · 0 评论 -
fork + exec, system, popen
1、fork + execfork用来创建一个子进程。一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开始运行,虽然它继承了父进程的一切数据,但实际上数据却已经分开,相互之间不再有影响了,也就是说,它们转载 2009-10-27 09:50:00 · 4338 阅读 · 1 评论 -
Make工程管理器(读书笔记)
到此为止,读者已经了解了如何在Linux下使用编辑器编写代码,如何使用Gcc把代码编译成可执行文件,还学习了如何使用Gdb来调试程序,那么,所有的工作看似已经完成了,为什么还需要Make这个工程管理器呢?所谓工程管理器,顾名思义,是指管理较多的文件的。读者可以试想一下,有一个上百个文件的代码构成的项目,如果其中只有一个或少数几个文件进行了修改,按照之前所学的Gcc编译工具,就不得不把这原创 2009-10-26 11:28:00 · 2489 阅读 · 0 评论 -
Gdb调试器(读书笔记)
Gdb调试器调试是所有程序员都会面临的问题。如何提高程序员的调试效率,更好更快地定位程序中的问题从而加快程序开发的进度,是大家共同面对的。就如读者熟知的Windows下的一些调试工具,如VC自带的如设置断点、单步跟踪等,都受到了广大用户的赞赏。那么,在Linux下有什么很好的调试工具呢?本文所介绍的Gdb调试器是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具。虽然,它没有图原创 2009-10-26 11:22:00 · 1320 阅读 · 0 评论 -
Gcc编译(读书笔记)
Gcc编译器GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。Gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且Gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在原创 2009-10-26 11:02:00 · 1135 阅读 · 0 评论 -
__attribute__详解
GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。__a转载 2010-05-12 13:37:00 · 1236 阅读 · 0 评论