![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
炸鸡叔
Done is better than perfect
展开
-
50国内外最优秀的C/C++源代码网站分享
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段2、htt转载 2013-12-25 09:58:35 · 2623 阅读 · 2 评论 -
让你的软件飞起来:RGB转为YUV
原文地址:http://blog.csdn.net/wxzking/article/details/5905195朋友曾经给我推荐了一个有关代码优化的pdf文档《让你的软件飞起来》,看完之后,感受颇深。为了推广其,同时也为了自己加深印象,故将其总结为word文档。下面就是其的详细内容总结,希望能于己于人都有所帮助。 速度取决于算法同样的事情,方法不一样,效果也不一样。比如,转载 2015-12-01 14:14:54 · 544 阅读 · 0 评论 -
Linux下DIR,dirent,stat等结构体详解
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data; int __entry_data转载 2015-12-08 16:42:46 · 996 阅读 · 0 评论 -
如果你不想让pthread_join阻塞你的进程,那么请调用pthread_detach
转发自:http://baike.baidu.com/view/4915289.htm创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid转载 2016-01-13 16:04:20 · 14228 阅读 · 0 评论 -
线程结束资源释放
线程创建时,系统会分配给线程一些资源,我们可以看到的就是线程描述符,线程堆栈,在系统内部还会有更复杂的系统维护一些信息,在线程创建时,内核总会为其维护一些资源,比较理想的情况是线程运行结束后,释放系统资源和进程资源,包含线程返回值占用的内存,线程堆栈,寄存器状态等等,以备后来者的使用.线程执行结束后释放资源的三种方法: 利用这些方法,我们可以避免线程退出时,系转载 2016-01-13 16:28:28 · 4394 阅读 · 0 评论 -
用文件函数获取文件的大小代码片段
/*is filesize right?*/fseek(fp, 0, SEEK_END);filesize = ftell(fp);if((filesize != EDID_MIN_LEN) && (filesize != EDID_MAX_LEN)){ RPT(RPT_ERR, "edid file size=, error!!, the correct file原创 2016-07-11 11:13:12 · 379 阅读 · 0 评论 -
C语言文件操作详解
转自:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.htmlC语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件转载 2016-07-12 14:20:45 · 671 阅读 · 0 评论 -
两则C语言技巧
两则C语言技巧 转载时请注明出处:http://blog.csdn.net/absurd/ 以前用C++时,喜欢去玩一些语法上的技巧,每学到一个技巧都高兴得不得了,总是想找个地方用它,以显示自己的水平。其实我们应该更关心技巧的实用价值,如果一项技巧很巧妙,但很少用它,忘掉了也不必觉得可惜。最近发现两则C语言技巧,以前没有用过,觉得有些实用价值,做个笔记吧。 1.转载 2016-06-19 13:47:18 · 450 阅读 · 0 评论 -
互斥量、条件变量与pthread_cond_wait()函数的使用
1. pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex.In Thread1:pthread_mutex_lock(&m_mutex); pthread_cond_wait(&m_cond,&m_mutex); pthread_m转载 2016-06-21 14:29:05 · 535 阅读 · 0 评论 -
封装的意义和喻义
原文出处:http://www.cnblogs.com/oiramario/archive/2007/01/15/620778.html我一直在不遗余力得推荐大家去看>的16、17、18章原因是这三章是我目前为止看到众多文章中阐述私有、封装、多态、继承表达最清楚的了需要反复咀嚼今天又看一遍摘录其中几句关键的话与大家分享1. 封装意味着什么? en-c转载 2016-07-28 10:00:39 · 839 阅读 · 0 评论 -
C语言如何检查一个字符串是否全数字?
正如题目所问?在C语言中如何判断一个字符串是否是全数字的?先贴出一段代码原创 2016-08-15 16:15:09 · 15934 阅读 · 1 评论 -
嵌入式设备中实现ping功能代码
Vfork出一个子进程,然后监控。原创 2016-09-01 13:50:17 · 1407 阅读 · 0 评论 -
exec系列函数(execl,execlp,execle,execv,execvp)使用
转自:http://blog.csdn.net/mathlmx/article/details/45298975?locationNum=4本节目标:exec替换进程映像exec关联函数组(execl、execlp、execle、execv、execvp)一,exec替换进程映像在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这转载 2016-09-30 11:55:11 · 15661 阅读 · 0 评论 -
multiple definition of `xxxx`问题解决及其原理
人有的时候就是这样,稍微知道点知识就觉着自己什么都会,就浮躁了,实际只是一瓶子不满半瓶子晃荡的状态,今天就写点基础的东西,也是当前遇到的,以前改改就过去了,没有深究其原因,今天就给它所清楚了,也算弥补以前的旧账。 早上编译一段代码,出现了如下的错误: multiple definition of `xxxxx`错误出现了,MD是不是谁写代码没在.h文件加条件编译啊?仔细查看了代码发现确实原创 2016-12-11 10:23:07 · 111889 阅读 · 37 评论 -
error: redefinition of ‘xxx’问题的解决
写点基础的东西。C语言初学者一般会遇到重复定义的问题,比如:message.h:36:16: error: redefinition of 'struct MSG_SERVOCTRL'message.h:36:16: note: originally defined heremessage.h:40:2: error: conflicting types for 'servoctrl'messag原创 2016-12-18 10:52:11 · 101537 阅读 · 9 评论 -
条件变量pthread_cond_t怎么用
LINUX系统编程这一快的知识,如果不经常使用的话,可能也会忘记,在项目中,可以代码可以看懂,但是自己亲自写的话,可能还是要翻一下<Linux 环境高级编程>这本书比较好,下面就简单记一下这个知识点一般pthread_cond_t,会搭配pthread_mutex_t 一起使用的, 因为线程间通信时操作共享内存时,需要用到锁。当锁住的共享变量发生改变时,可能需要通知相应的线...转载 2018-01-05 10:37:12 · 2475 阅读 · 0 评论 -
定位线程Segment fault (SIGSEGV)的方法
引出问题在嵌入式应用程序开发过程中,调试一直是个老大难问题 -- 由于环境的限制,当程序发生段错误时不能很好的定位到底是哪里出现了错误,如果在程序发生段错误时能够清晰明了地看到程序的栈帧链,那无疑是雪中送炭。本文就捕捉信号SIGSEGV并在该信号的处理函数中打印出函数栈帧链来帮助我们调试程序。本文的程序适合ARM和X86平台。回溯栈帧原理理解函数栈帧的布局后,那么自转载 2015-11-11 16:22:11 · 12623 阅读 · 0 评论 -
一个文件操作的简单程序:关于文件的fopen、fread、fseek、ftell、fclose等操作(FIFO related)
原文出处:http://blog.csdn.net/CHANGQINGTENGCJM/article/details/48346069文件的读写能大大提高linux程序编写的效率,减少代码量的同时,可以简化程序逻辑,在设计API交互时应用普遍。下面,我们将通过笔者编写的一个程序来对这个过程做一个初步的讲解,同时也希望通过对改程序的学习,能加强大家对文件的一些基本操作的认识。linu转载 2015-10-22 10:06:36 · 780 阅读 · 0 评论 -
*** glibc detected *** xxx: double free or corruption (out): 0x000e1928 ***
今天在调试程序的时候遇到一个报错,然后进程就挂掉了,报错信息如下: *** glibc detected *** xxx: double free or corruption (out): 0x000e1928 *** xxx就是挂掉的进程。先把代码贴上来:int file_info_list_create(void){ struct dirent *p原创 2015-05-17 09:14:05 · 13482 阅读 · 0 评论 -
va_list、 va_start、 vsprintf、va_end 用法
原文出处http://blog.csdn.net/yx_l128125/article/details/17379137小知识点总结:(知识点2、3是为了更好理解知识点1)知识点1:va_list、 va_start、 vsprintf、va_end 用法: 看同事LCD工程里面有这样的应用--va_list arg_ptr; va_sta转载 2014-01-24 13:50:15 · 989 阅读 · 0 评论 -
C语言字节对齐
原文出处:http://blog.csdn.net/sujunzy666/article/details/18732153总结的很好,理解透彻。转载 2014-01-26 10:49:48 · 663 阅读 · 0 评论 -
如何理解指向指针的指针?
问题:如何理解指向指针的指针?我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。引用文章相关段落如下:int i = 5, j = 6, k = 7;int *ip1 = &i, *ip2 = &j;现在我们可以这么写:int **ipp = &ip1;那么现在指针 ipp 指向了 ip1,ip1 指向了 i。原创 2014-06-26 14:10:13 · 744 阅读 · 0 评论 -
C语言中宏 __DATE__ , __TIME__ 的应用
static int do_version(int argc, char** argv){ printf("%s\n", __SVN_VERSION); return 0;}原创 2014-06-13 10:31:12 · 1575 阅读 · 0 评论 -
C语言宏的高级应用 #与##作用
关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP ""); }转载 2014-05-29 14:49:45 · 817 阅读 · 0 评论 -
关于K&R代码风格中的大括号
起因是今天更改以前同事遗留下来的代码,改的有些累,所以有些感触。最大的感触就是这个K&R风格的大括号。对这种风格的括号我还是很抵触,因为不管是查看还是调试程序都非常的不方便。标准的K&R风格应该是这样:if(count>100){ count=0; reset=true;}但是修改代码的时候竟然看到这样的代码段:if(count>100){ count=0;res转载 2014-06-15 20:23:10 · 14107 阅读 · 3 评论 -
由sscanf用错引出bug,总结下sscanf用法
1、我使用sscanf犯下的错误先看下代码:原创 2014-05-22 09:55:22 · 9677 阅读 · 1 评论 -
void及void指针含义的深刻解析
原文出处:void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid转载 2014-09-04 11:33:00 · 569 阅读 · 0 评论 -
除法向上取整
向上取整:两数相除,若余数小数点后面有数,则进1,否则不变。c++中向上取整方法: M除以N向上取整 :(M+N-1)/N转载 2014-08-12 08:51:44 · 1750 阅读 · 0 评论 -
正则表达式和sscanf
在看这篇文章之前建议你先了解一下什么是正则表达式,具体不重复了,google一下能出一大堆,不过这篇文章比较好,贴个url http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm,作者说30分钟能看完的不是地球人,但是我15分钟就看完了还记住了90%以上,好吧我来自火星,玩笑到此结束,下面切入正题。 本文转载 2014-09-29 10:39:52 · 1168 阅读 · 0 评论 -
代码中特殊的注释技术——TODO、FIXME和XXX的用处
本博客网址:http://blog.csdn.net/reille/,转载本博客原创文章请注明出处。本文内容概要: 代码中特殊的注释技术——TODO、FIXME和XXX的用处。 前言:今天在阅读Qt Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义!实际上,在阅读一些开源代码时,我们常会碰到诸如:TODO、FIXME和XXX转载 2015-01-09 09:09:27 · 840 阅读 · 0 评论 -
inline的用法
inline的核心思想是通过替换消除函数调用的开销。所谓替换是指,用函数本体替换每一处对此函数的调用。函数调用的开销是指,每一次函数调用,程序都需要保存当前函数的现场,例如保存所有寄存器的值,每次函数返回都需要恢复现场,这个现场的保存和恢复属于函数调用的开销。 如果一个函数被inline化,意味着此函数不会被调用,那么此函数在编译时将不会出现在符号表中,这样意味着此函数没有地转载 2015-04-02 10:17:08 · 586 阅读 · 0 评论 -
状态机
有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。最近看了一些游戏编程AI的材料,感觉游戏中的AI,第一要说的就是有限状态机来实现精灵的AI,然后才是A*寻路,其他学术界讨论比较多的神经网络、模糊控制等问题还不是很热。FSM的实现方式:1) switch/case或转载 2015-04-10 13:50:01 · 7338 阅读 · 0 评论 -
sysconf()
使用 sysconf() 函数确定可配置的系统变量的值。原型是:引用#include long sysconf (int name);sysconf() 返回选项 (变量) 的当前值,这个值可配置的但也是受系统限制的。在成功完成的情况下,sysconf() 返回变量的当前值。该值受到的限制将少于编译时 , 或 中可用的对应值。大多数这些变量的值在调用进程转载 2015-04-21 17:11:02 · 951 阅读 · 0 评论 -
C/C++ Volatile关键词深度剖析
原文出处:http://hedengcheng.com/?p=7251 背景 12 Volatile:易变的 12.1 小结 23 Volatile:不可优化的 33.1 小结 44 Volatile:顺序性 44.1 happe转载 2015-05-12 16:09:01 · 489 阅读 · 0 评论 -
scp是个好工具,咋用呢?
最近调试个小程序,交叉编译需要将编译后的可执行程序下载到target,之前一直搭建的rsync服务下载,或者使用ftp下载,又或者用mount的方式,但是这几个方式都比较庞大,要用专用软件或者配置繁琐,就在想有没有简单点的,linux系统之间传文件的工具,网上一搜还真有,scp就是这样一个便捷的工具,网上关于scp的使用总结一堆,但是我还是想自己总结下,实践出真知。man scp 看一下先...原创 2018-05-25 15:04:58 · 3775 阅读 · 0 评论