![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux编程学习
飞翔到天边
受了伤,一笑而过…
展开
-
不使用链表来实现环形队列
typedef struct QUEUE{ //struct QUEUE *Qnext; void ** QStart; void **QEnd; void **QIn; void **QOut; unsigned int QSize; unsigned int QEntries;}queue;queue *queue_create(int size){ queue *q = (queue *)malloc(sizeof(queue)); if(q==NULL) { .原创 2021-03-23 20:43:28 · 124 阅读 · 0 评论 -
C语言中没有main函数生成可执行程序的几种方法
转自:http://www.linuxidc.com/Linux/2013-09/90061.htm1、define预处理指令这种方式很简单,只是简单地将main字符串用宏来代替,或者使用##拼接字符串。示例程序如下:#include #define begin mainint begin(void){printf("Hello, World!\n");转载 2014-02-17 14:21:17 · 2134 阅读 · 0 评论 -
C语言简单的文件加密
昨天有个同事问我linux下有没有什么简单的加密文件的开源组件,找了一下没找到,索性自己写一个,反正要求不高,能隐藏ascii码的明文就OK了。纯属娱乐:懒得文字描述如何加密的,一切看代码,简简单单~#include #include #include #include #include #include #include #include #include #def原创 2014-03-28 13:46:40 · 939 阅读 · 0 评论 -
【c语言编程】关于数组
#include #include int main(){ char arrary[]={"Hello1" "\0" "Hello2" "\0" "Hello3\0" "Hello4" "\0"}; char *ptr = arrary; printf("sizeof(array)=%d \n",sizeof(arrary)原创 2014-03-27 16:07:10 · 748 阅读 · 0 评论 -
c/c++面试题
1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范转载 2015-06-12 15:28:39 · 1315 阅读 · 0 评论 -
linux I2C读写应用程序
linux下I2C的读写应用程序原创 2015-10-29 10:51:31 · 8240 阅读 · 1 评论 -
使用 watchdog 构建高可用性的 Linux 系统及应用
使用 watchdog 构建高可用性的 Linux 系统及应用Linux 在不同领域如电信、终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求。Carrier Grade Linux 是 OSDL(Open Source Development Lab)发布的电信级 Linux 的标准,在系统可用性这部分指出 Linux 必须支持 watchdog 机转载 2015-11-02 10:47:20 · 670 阅读 · 0 评论 -
define+include 文件的巧用
现在工程中有一个头文件,对各种变量进行定义。test.hunion u_x{u1_a;u1_b} ;union u_xx{u2_a;u2_b;};现在我们需要对工程里的枚举进行扩展,有两种做法,做法1: 修改test.h文件union u_x{u1_a,u1_b,u1_c,} ;union u_xx{原创 2016-04-11 14:57:32 · 1890 阅读 · 0 评论 -
可变数组用法
#include struct test{ int a; int list[];};int main(){ printf("sizeof struct test=%d\n", sizeof(struct test)); return 0;}运行结果:4原创 2016-04-11 19:40:17 · 646 阅读 · 0 评论 -
Linux内核C语言深度解析
本文来源于GitChat体验课第01课: C标准发展C标准的四个阶段:K&R CANSI CC99C11K&R C 称为传统C语言,在C语言标准统一前,这个是最权威。ANSI C:是ANSI(美国国家标准协会), 再K&R C基础上,统一了各大编译器厂商的不同标准,并做了一些扩展,也称作 C89/C90, 至此C标准统一起来。C99: A...原创 2019-06-24 19:01:08 · 1430 阅读 · 1 评论 -
IOCTL操作
文章转自:http://blog.163.com/cl2006ky@126/blog/static/871951732013324103115528/?latestBlogIOCTL操作 2013-04-24 10:31:15| 分类: linux 驱动 开发|举报|字号 订阅大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能转载 2014-02-26 19:45:34 · 1357 阅读 · 0 评论 -
c代码学习
========= test.c ==========#include #define ROOT "/tmp"#define FILENAME "haha"#define __PATH__ ROOT "/ppp/hello" "/" FILENAMEint main(){ int a[]={10,23,11,19}; int *p原创 2014-02-24 09:26:33 · 886 阅读 · 0 评论 -
c语言排序算法
为了应付面试,不得不将c语言再来复习一遍,现在将所写的排序算法保存下来,以便以后再次复习。这里的排序都是从小到大排序。1. 冒泡排序冒泡法大家都较熟悉,原理也比较简单。第一次循环从第一个元素开始,一个和相邻的下一个数比较,若a[n]>a[n+1] 则就交换,这样第一次循环将最大的数排在了最后;依次第二次循环,第三次循环。。。。具体请分析代码。int sort_bubble(in原创 2013-10-11 14:10:41 · 887 阅读 · 0 评论 -
linux下关闭标准输出,然后重新打开的方法
linux下关闭标准输出,然后重新打开的方法:有两种方法:1. 通过freopen函数来实现; #include int main(){ printf("Hello world! 1\n"); fclose(stdout); printf("hello world! 2\n"); freopen("原创 2012-12-26 13:53:07 · 6515 阅读 · 0 评论 -
linux exec族六个函数的区别总结
exec族有六个函数,函数原型是:int execl(const char *pathname, const char *arg0, ... /* (char *)0 */);int execv(const char *pathname, char *argv[] );int execle(const char *pathname, const char *arg0, ...原创 2012-12-26 18:07:20 · 1403 阅读 · 0 评论 -
时钟时间 用户cpu时间 系统cpu时间
原文出处:http://blog.sina.com.cn/s/blog_45497dfa0100jgbl.html日历时间:系统基本数据类型time_t 时钟时间(墙上时钟时间wall clock time):就是一个进程从开始运行到结束运行后,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。 用户CPU时间:就是用户的进程获得了CPU资源以后,转载 2012-12-27 13:12:35 · 1213 阅读 · 0 评论 -
linux下获取命令执行后的返回信息方法
linux下有些命令可以让我们省不少事情,在开发的过程中,可以利用这些命令,从而省去开发相应功能的时间和精力。例如system函数就可以满足我们的需求,可是我们经常需要获取命令执行后的返回信息,可以通过以下方法:以ping命令为例: #include #include int main(int argc, char *argv[]){ int ret=-原创 2012-12-25 08:56:30 · 3308 阅读 · 0 评论 -
sscanf正则表达式用法举例
今日工作中,突然遇到了这种用法,之前是真的没有接触过,看着都一愣一愣的,一查原来是sscanf的正则表达式的用法。哎,真是井底之蛙啊。先看以下转载的文章,然后对着自己写的程序一点点的看:/******************************************************************************************************原创 2013-03-22 14:35:44 · 1995 阅读 · 0 评论 -
Linux下应如何获取磁盘信息
Linux下如何获取磁盘信息熟悉Linux的都知道,Linux下硬盘的命名规则是had、hdb…sda、sdb之类的。但是,如何才能知道机器上到底有多少块硬盘呢? 刚开始,我以为/dev目录下会有所体现结果我发现设备文件存在并不代表这个设备。那么怎么办才好呢。后来我发现fdisk可以得到硬盘的数量。于是就阅读了一下fdisk的源代码。果然找到了Linux获取硬盘数量的方法。实例代码如转载 2013-07-16 08:38:45 · 872 阅读 · 0 评论 -
嵌入式汇编语句学习(《linux内核完全注释》)
嵌入式汇编语句学习(《linux内核完全注释》)本节是第一次在内核源程序中接触到C语言中的嵌入式汇编代码。由于我们在通常的C语言程序的编制过程中一般是不会使用嵌入式汇编程序的,因此这里有必要对其基本格式进行简单的描述,详细的说明可参见GNU gcc手册中[5]第4章的内容(Extensions to the C Language Family),或见参考文献[20](Using I转载 2013-07-26 17:12:58 · 1363 阅读 · 0 评论 -
什么是流?
详细请参见原帖:http://bbs.pfan.cn/post-173335.html各大权威对流的说法有些不一致,我认为流既是数据的源或目的地的抽象,也是源和目的地之间流动信息的表示。但流起码都暗含以下的几个方面:1、流是一个抽象的概念,是对信息的一种表达;在程序中,流就是对某个对象输入输出信息的抽象。就像运输工具是对一切运动载体的抽象一样。2、流是一种“动”的概念,静止存储转载 2012-12-25 15:02:39 · 966 阅读 · 0 评论