linux c编程
qq429205464
这个作者很懒,什么都没留下…
展开
-
教你理解复杂的C/C++声明
[转载]教你理解复杂的C/C++声明注:一篇很好的文章,仔细阅读受益非浅陆其明 译 原文: http://www.codeproject.com/cpp/complex_declarations.asp 作者:Vikram A Punathambekar [介绍] 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10转载 2011-12-31 17:52:33 · 603 阅读 · 0 评论 -
c语言字节对齐问题(一)
在这里只总结结构体的字节对齐问题,看下面的结构体 struct s1 { char a; int b; short c; };原创 2012-09-08 10:59:07 · 988 阅读 · 0 评论 -
12个有趣的c语言面试题
1.gets()函数问:请找出下面代码里的问题:#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代转载 2012-10-14 21:15:51 · 808 阅读 · 0 评论 -
c语言的一些小细节
最近看了一些书籍,总结一下程序员容易忽略的编程细节吧,对面试还是考试有帮助的,不断更新中。1. sizeof 想必大家都知道这个关键字吧,不是函数哦,凡是在c\c++编辑器了有和其它关键字有相同颜色的单词都是关键字,这是一个计算类型或者变量在内存中的占位大小,当是类型时如sizeof(int),就是int类型占内存的大小是4字节,这里要加括号哦,接着如果是变量,如果有in原创 2012-10-03 23:34:02 · 985 阅读 · 0 评论 -
嵌入式软件工程师应聘
嵌入式软件工程师应聘 数据结构(C语言)部分常考的知识点:1、局部变量能、全局变量和静态变量2、堆和栈 3、Const、volatile、define、typedef的用途4、链表(比如链表的插入、删除和排序)5、排序(考查冒泡法的较多)6、可重入函数 、malloc函数7、指针(常考函数指针,函数指针,数组指针,指针数组和其他的应用),结构体和共用体转载 2012-09-28 19:42:42 · 1301 阅读 · 2 评论 -
c语言字节对齐问题(二)
上一篇已经说了一些基本的struct成员变量的内存对齐的问题,现在来进一步看看位域在struct的运用,对减少内存的使用很用帮助,特别是在嵌入式领域。废话不多说了,看下面结构体struct s{ char a:4; int b:8; char c:4;};那么sizeof(s) = 4先说下位域在内存对齐的一些规则:1.声名原创 2012-09-08 18:32:06 · 825 阅读 · 0 评论 -
qt moc-qt4
今天使用qt4.5.2 编译 编译qtanimation的库出现moc-qt4命令未找到提示发现原来是系统里面有一个qmake命令,连接到/usr/bin/qmake-qt4然而使用这个qmake创建的makefile文件 指定的编译工具是moc-qt4最后使用绝对路径指定qmake 为/opt/qtsdk-2009.03/qt/bin/qmake 便解决了这个问题tsuibi转载 2012-08-15 18:05:42 · 1978 阅读 · 0 评论 -
七个高效的编辑文本的习惯
如果你要花大量的时间键入文本, 写程序或编写HTML脚本, 你可以通过有效地使用一个好的编辑器来替你节省时间. 本文将引导你如果快速地完成你的编辑工作, 并且减少你的错误. 本文将以开放源码软件Vim(Vi IMproved)为例向你展示如何进行有效的编辑, 但这里提到的原则对其它的编辑器也是一样, 选择合适的编辑器是进行高效的编辑的第一步, 关于哪个编辑器最好的争论已经数不胜数, 本文不打转载 2012-08-14 19:33:09 · 818 阅读 · 0 评论 -
堆和栈
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2012-08-07 18:37:26 · 420 阅读 · 0 评论 -
grep 命令
功能说明:查找文件里符合条件的字符串。语 法:grep[-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][范本样式][文件或目录...]补充说明:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文转载 2012-08-03 19:21:15 · 707 阅读 · 0 评论 -
linux内核Jiffies
全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。 系统运行时间以秒为单位,等于jiffies/Hz。注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。将以秒为转载 2012-07-29 15:09:10 · 2306 阅读 · 0 评论 -
构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解
在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个EINVAL错误,而不是无意间成功地完成了意想不到的操作。 在驱动程序里, ioc转载 2012-08-02 12:51:11 · 40293 阅读 · 7 评论 -
linux字符设备驱动的 ioctl 幻数
在Linux字符设备驱动入门(一)中,我们实现了字符设备的简单读写字符功能,接下来我们要在这个基础上加入ioctl功能。首先,我们先来看看3.0内核下../include/linux/fs.h中file_operations结构体的定义:struct file_operations { struct module *owner; loff_t (*llseek) (转载 2012-08-02 11:55:53 · 8367 阅读 · 1 评论 -
linux内核list_head结构的介绍
list_head结构的介绍list_head结构定义在 里,它是一个double linked list的结构。 底下是它的结构宣告: struct list_head {struct list_head *next, *prev;}; 有的人可能看到这样的结构会觉得很奇怪这样的结构可以存放资料吗? 当然是不行的转载 2012-08-03 09:43:58 · 1063 阅读 · 0 评论 -
指针数组与数组指针
呵呵,实在是厌倦了绕口的解释。指针数组,故名思义,就是指针的数组,数组的元素是指针;数组指针,同样,就是直想数组的指针。简单举例说明:int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。其实这两种写法主要是因为运算符的优先级, 因为[]的优先级比*高。所以第一种写转载 2012-06-20 23:40:09 · 553 阅读 · 0 评论 -
bss段
可执行程序包括BSS段、数据段、代码段(也称文本段)。 BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。 注意和数据段的区别,BSS存放的是未初始化的全局变量和静态变量,数据段存放的是初始化后的全局变量和静态变量。 UNIX下可使用size命令查看可执行文件的段大小信息。如size a.out。 在采用段式内存管理的架原创 2012-06-20 23:20:19 · 4981 阅读 · 2 评论 -
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态转载 2012-02-26 21:19:45 · 408 阅读 · 0 评论 -
c可变参数
原文地址:http://www.programfan.com/club/showbbs.asp?id=82615 一、什么是可变参数我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个转载 2012-08-11 12:33:07 · 964 阅读 · 0 评论