C 语言集合
文章平均质量分 77
fulinux
我热爱Linux、热爱Yocto、喜欢编程、热爱科学技术的码农!希望我的博客能帮助到哪些在茫茫黑夜中摸索的小白!
欢迎关注、点赞和订阅!
展开
-
Linux C字符串处理示例之strtok/strstr/sscanf函数
By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录问题导向代码示例运行结果问题导向AT查询有哪些通话,每个字段代表不同的含义如何提取出来呢?AT+CLCC+CLCC: 1,1,0,1,0,"",128+CLCC: 2,1,0,1,0,"",128+CLCC: 4,1,1,0,0,"13063334173",128+CLCC: 3,1,0.原创 2020-11-12 19:35:02 · 500 阅读 · 0 评论 -
数据结构迷宫升级版
#include#include#define M 15//M和N的值可以改,定义一个迷宫大小数组最大空间,#define N 15/*************栈函数****************/typedef struct Seat//定义迷宫内点的坐标类型{int x;//x行,y列int y;};typedef struct Element//链栈原创 2013-06-07 22:33:11 · 2226 阅读 · 0 评论 -
pthread_mutex_init()实例
百度百科链接介绍pthread_mutex_init()函数[root@localhost cfile]# vim thread_mutex.c + thread_mutex.c原创 2013-12-05 15:06:05 · 4612 阅读 · 0 评论 -
C51模拟PS2键盘(二)
协议介绍: 一. PS2接口 1> 现在的Ps2接口普遍采用6引脚连接器.主设备采用female接口,从设备采用male接口 2> 6引脚连接器引脚设置: 1> 引脚1 -> 数据线 2> 引脚2 -> 未定义,保留 3> 引脚3 -> 电源地 4> 引脚4 -> 电源<+5V> 5> 引脚5 -> 时钟线 6> 引脚6 -> 未定义,保留 3> Ps2的两根信号线为"集电极开路"结构,必须要有上拉电阻.并且一般情况下,在主设备端上拉.原创 2013-11-10 20:46:25 · 4349 阅读 · 0 评论 -
C51模拟PS2键盘(四)
协议介绍: 一. PS2接口 1> 现在的Ps2接口普遍采用6引脚连接器.主设备采用female接口,从设备采用male接口 2> 6引脚连接器引脚设置: 1> 引脚1 -> 数据线 2> 引脚2 -> 未定义,保留 3> 引脚3 -> 电源地 4> 引脚4 -> 电源<+5V> 5> 引脚5 -> 时钟线 6> 引脚6 -> 未定义,保留 3> Ps2的两根信号线为"集电极开路"结构,必须要有上拉电阻.并且一般情况下,在主设备端上拉.原创 2013-11-10 21:01:27 · 4856 阅读 · 8 评论 -
linux之getopt_long函数解析
[lingyun@localhost getopt_long]$ cat getopt_long.c /********************************************************************************* * Copyright: (C) 2013 fulinux * All原创 2013-08-08 15:44:05 · 1542 阅读 · 0 评论 -
linux之chdir函数解析
[lingyun@localhost chdir]$ lschdir.c[lingyun@localhost chdir]$ cat chdir.c /********************************************************************************* * Copyright: (C) 2013 fulinu原创 2013-08-06 15:43:38 · 9154 阅读 · 0 评论 -
linux之getcwd函数解析
[lingyun@localhost getcwd]$ cat getcwd.c/********************************************************************************* * Copyright: (C) 2013 fulinux * All rights rese原创 2013-08-06 16:07:49 · 5983 阅读 · 0 评论 -
linux之unlink函数解析
[lingyun@localhost unlink]$ cat unlink.c /********************************************************************************* * Copyright: (C) 2013 fulinux * All rights res原创 2013-08-04 11:17:10 · 2527 阅读 · 0 评论 -
linux之utime函数解析
[lingyun@localhost utime]$ lshello utime.c world[lingyun@localhost utime]$ cat utime.c/********************************************************************************** Copyright: (原创 2013-08-04 18:16:13 · 3134 阅读 · 0 评论 -
linux之access函数解析
[lingyun@localhost access_1]$ lsaccess.c[lingyun@localhost access_1]$ cat access.c /********************************************************************************* * Copyright: (C) 201原创 2013-08-02 16:15:54 · 1735 阅读 · 0 评论 -
linux之umask函数解析
[lingyun@localhost umask_1]$ vim umask.c + umask.c /******************************原创 2013-08-02 19:24:10 · 1669 阅读 · 0 评论 -
linux之lstat函数解析
[lingyun@localhost lstat]$ cat lstat.c /********************************************************************************* * Copyright: (C) 2013 fulinux * All rights reser原创 2013-08-02 13:01:25 · 3847 阅读 · 0 评论 -
linux之stat函数解析
[lingyun@localhost stat_1]$ vim stat.c + stat.c /********************************原创 2013-08-02 12:19:06 · 2016 阅读 · 0 评论 -
__FUNCTION__, __LINE__
这里的两个参数__FUNCTION__和__LINE__,__FUNCTION__可以显示调用它的函数名,这里是vio_set_vo_ch_attr_one,__LINE__可以定位是哪一行。原创 2013-12-19 13:35:17 · 5101 阅读 · 0 评论 -
xxx.c:4: fatal error: xxx.h: No such file or directory
我在交差编译的时候经常碰到类似这样的问题: xxx.c:4: fatal error: xxx.h: No such file or directory 注:这里的xxx是一个一般的表述。在Makefile文件中: INC_DIR := ./inc ../common/inc ../common/inc/mod ../common/inc/tlsdk ../encode/inc INC_DIR += $(TL_APP_MPP_PATH)/include再有就是所说的文件xxx.h不存在或者目录原创 2014-01-22 13:18:01 · 38328 阅读 · 3 评论 -
ARM汇编和C语言混合编程中数组的数组的操作
ARM汇编和C语言混合编程中数组的数组的操作此示例描述a数组中的元素累加的结果,c和b交换的实例: ·by fulinux(blog.csdn.net/fulinus)代码块例如:#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;int main (int argc, char **argv){ int a[4] = {1, 2, 3, 4}; int ...转载 2018-08-31 11:49:18 · 4110 阅读 · 0 评论 -
u-boot-2014.10移植第6天----深入分析代码(一)
前面我们看到了一个lds文件,我们这里原创 2015-01-26 11:03:03 · 2880 阅读 · 0 评论 -
u-boot-2014.10移植第4天----裸机蜂鸣器程序
蜂鸣器汇编程序:原创 2015-01-22 08:44:55 · 2721 阅读 · 0 评论 -
libmsgque官方主页
libmsgque消息队列(MESSAGE QUEUE)库项目简析注: 本文假设你已经有linux开发环境请确保你使用本库时是tag版本。target=libmsgque-1.0本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享,为开源事业贡献一点点力量。库主页用于详细说明库的相关内容,大家亦可以在issues和博客下面反馈你使用过程中所遇到的问题和想法。希望大家能积极的改进该库,并在git@oschina上发起合并请求,如果确有改进,我会将其合并到master分支上来。当然你首先要原创 2014-08-30 21:32:01 · 2337 阅读 · 1 评论 -
libcanbus官方主页
libcanbuscanbus(CAN BUS V2.0 B)扩展格式库项目简析注: 本文假设你已经有linux开发环境请确保你使用本库时是tag版本。该库遵循的协议是SAE J1939-21-2006。target=libcanbus-1.0本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享,为开源事业贡献一点点力量。源码下载地址**https://git.oschina原创 2014-10-09 21:17:24 · 3806 阅读 · 0 评论 -
perror函数在定位段错误或内存溢出时的神效
当你碰到这个问题是你也许*** Error in `/home/fulinux/libcanbus/test/.libs/lt-client-cycle2snd': free(): invalid next size (normal): 0x00000000022afaf0 ***======= Backtrace: =========/lib/x86_64-linux-gnu/libc.so.6原创 2014-09-11 19:46:37 · 1969 阅读 · 1 评论 -
C语言编程技巧札记
size_t:size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。属于C99标准,原创 2014-08-22 18:43:22 · 1996 阅读 · 0 评论 -
configure交叉编译
今天在交叉编译时犯了一个错误,纠结了好久,以前交叉编译器的前缀基本上都是用arm-linux-,这次换了一个新环境是arm-none-linux-gnueabi-,于是想当然的把configure中的host参数设置为--host arm-linux,于是就犯了一些错误。把它改为--host arm-none-linux-gnueabi就可以了。详细请看:http://blog.chinaunix原创 2014-07-10 15:45:54 · 5432 阅读 · 1 评论 -
C51模拟PS2键盘(一)
协议介绍: 一. PS2接口 1> 现在的Ps2接口普遍采用6引脚连接器.主设备采用female接口,从设备采用male接口 2> 6引脚连接器引脚设置: 1> 引脚1 -> 数据线 2> 引脚2 -> 未定义,保留 3> 引脚3 -> 电源地 4> 引脚4 -> 电源 5> 引脚5 -> 时钟线 6> 引脚6 -> 未定义,保留 3> Ps2的两根信号线为"集电极开路"结构,必须要有上拉电阻.并且一般情况下,在主设备端上拉.原创 2013-11-10 20:35:56 · 6188 阅读 · 0 评论 -
linux wireless mouse
1、下面是写的一个无线或是有线鼠标测试程序注:有线鼠标插入linux系统中是会在/dev目录下创建一个event0文件,但是无线鼠标插上后会有两个设备文件,一个是event0,另一个是event1;[root@localhost hi35xx_mice]# vim mice_test.c /************************************************原创 2014-01-24 14:45:36 · 2850 阅读 · 0 评论 -
linux之ioctl函数解析
[lingyun@localhost ioctl_1]$ lsipconfig.c[lingyun@localhost ioctl_1]$ cat ipconfig.c /********************************************************************************* * Copyright: (C) 2原创 2013-08-01 15:55:44 · 1736 阅读 · 0 评论 -
linux之fcntl函数解析
1、写入锁实例:[lingyun@localhost fcntl]$ cat fcntl_write.c /********************************************************************************* * Copyright: (C) 2013 fulinux *原创 2013-07-30 16:40:26 · 1854 阅读 · 0 评论 -
register解析
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝身边的小太监----寄存器不知道什么是寄存器?那见过太监没有?没有?其实我也没有。没见过不要转载 2012-12-20 15:25:09 · 2392 阅读 · 0 评论 -
register解析
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝身边的小太监----寄存器不知道什么是寄存器?那见过太监没有?没有?其实我也没有。没见过不要转载 2012-12-20 15:24:39 · 3373 阅读 · 0 评论 -
static解析
简介 C#与C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1转载 2012-12-15 18:47:23 · 947 阅读 · 0 评论 -
extern
下面这些摘自百度百科: extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。关键字extern在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案转载 2012-12-15 16:16:16 · 1070 阅读 · 0 评论 -
变量初始化技巧
变量初始化时如果不是初始化为0的话就对它显示初始化,否则不初始化原创 2012-12-15 16:52:22 · 1186 阅读 · 0 评论 -
inline解析
一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏转载 2012-12-15 14:16:38 · 1198 阅读 · 0 评论 -
数据结构知识点
CURRENT->dev和CURRENT-> dev有点不一样吧?有待实验原创 2012-12-15 12:53:47 · 1076 阅读 · 0 评论 -
goto语句
goto语句可以这两个不同子程序中跳转:/* * floppy-change is never called from an interrupt, so we can relax a bit * here, sleep etc. Note that floppy-on tries to set current_DOR to point * to the desired drive, bu原创 2012-12-14 15:36:12 · 2175 阅读 · 0 评论 -
回车和换行的区别-\n\r什么意思呢?
回车和换行的区别原创 2012-12-13 16:36:51 · 2374 阅读 · 0 评论 -
repne指令和scasb指令解析
extern inline int strlen(const char * s){register int __res__asm__('cx');__asm__("cld\n\t" "repne\n\t" "scasb\n\t" "notl %0\n\t" "decl %0" :"=c"(__res):"D"(s),"a"(0),"0"(0xffffffff):"di");ret原创 2012-12-13 11:08:22 · 16255 阅读 · 0 评论 -
嵌入汇编中的编号解析
嵌入如汇编程序规定把输出和输入寄存器统一按顺序编号,顺序是从输出寄存器序列从左到右从上到下以“%0”开始,分别记为%0,、%1、。。。%9。因此下面的中的%4对应“1”(0),而“1”(0)有对应“=d”(__res)#define do_div(n,base)({\int __res;\__asm__("divl %4":"=a"(n),"=d"(_res):"0"(n),"1"(0原创 2012-12-13 13:15:48 · 2036 阅读 · 2 评论 -
((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1))
一、问题的提出两年之前我写过一篇可变参数学习笔记,里面曾经简单的解释过一句:代码((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1))的作用是在考虑字节对齐的因素下计算第一个可变参数的起始地址。当时限于时间和水平,未能做更详细的解释。今天(2007-11-26)在csdn论坛上看到了一个帖子http://topic.csdn.net/u转载 2012-12-12 13:36:23 · 2778 阅读 · 0 评论