C语言类
文章平均质量分 76
一休求索
路漫漫其修远兮,吾将上下而求索!
当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及
展开
-
C语言实现字节流与十六进制字符串的相互转换
原文出自:http://blog.csdn.net/qq387732471/article/details/7360988//字节流转换为十六进制字符串void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen){ short i; unsigned char highByte,转载 2016-01-19 09:16:28 · 2135 阅读 · 0 评论 -
7种排序算法的实现示例
仅作参考,不能完全照搬,需要个人完善!#include #include #include void BubbleSort1 (int n, int *array) /*little > big*/{ int i, j; for (i=0; i { for (j=n-1; j>i; j--) { if (array[j] {转载 2016-11-16 14:50:08 · 316 阅读 · 0 评论 -
__attribute__((packed))详解
__attribute__((packed))详解标签: it分类: linux程序1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译转载 2016-10-14 09:08:23 · 582 阅读 · 0 评论 -
最简单的回调函数例子
#include void PrintMessage(int i); void ShowMessage(void (* ptr)(int), int par); int main(){ShowMessage(PrintMessage, 3); return 0;} void PrintMessage(int i){ printf("T原创 2016-09-07 11:42:22 · 2670 阅读 · 0 评论 -
Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
Linux C 下面读取文件夹要用到结构体struct dirent,在头#include 中,如下:#include struct dirent{ long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_re转载 2016-08-26 14:48:55 · 931 阅读 · 0 评论 -
linux ftw()函数使用方法 实例
表头文件:#include 定义函数:int ftw(const char *dir, int (*fn) (const *file, const struct stat *sb, int flag), int depth)函数说明:ftw() 会从参数dir指定的 目录开始,往下一层层地递归式遍历子 目录。ftw()会传三个参数给fn(), 第一个参数*file指向当时所在的 目录路转载 2016-08-26 13:18:51 · 7604 阅读 · 1 评论 -
关于网络字节序和主机字节序的转换
网络字节顺序及其转换函数(1) 网络字节顺序每一台机器内部对变量的字节存储顺序不同,而网络传输的数据是一定要统一顺序的。所以对内部字节表示顺序与网络字节顺序不同的机器,一定要对数据进行转换,从程序的可移植性要求来讲,就算本机的内部字节表示顺序与网络字节顺序相同也应该在传输数据以前先调用数据转换函数,以便程序移植到其它机器上后能正确执行。真正转换还是不转换是由系统函数自己来决定的。(2)转载 2016-07-28 17:37:30 · 694 阅读 · 0 评论 -
死锁问题(一)
出处:http://it.taocms.org/11/6081.htm理论上来说,多线程程序在链接时应该加上-lpthread或者-pthread。实际上很多时候忘记加这个也能链接过去,最近我线上的一个重要服务经常卡死,CPU使用率很高。用pstack看,经常是停留在这样的地方:# 0x0000003a21e0e054 in __lll_lock_wait转载 2016-03-11 17:25:48 · 1085 阅读 · 0 评论 -
线程调用例子
//线程处理函数void * SetAddCNUsToLdBalGrp_start_run(void * arg){CMC_SetAddOrRemoveCnusReqT *pRevBuf = (CMC_SetAddOrRemoveCnusReqT *)arg; u16b reqOff = 0;u8b resultCode = OK;cout //原创 2016-02-18 14:21:20 · 258 阅读 · 0 评论 -
Linux 线程优先级
转载出处:http://www.cnblogs.com/imapla/p/4234258.htmlLinux内核的三种调度策略: 1、SCHED_OTHER 分时调度策略 2、SCHED_FIFO实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃 3、SCHED_RR实时调度策略,时间片轮转。转载 2016-02-18 11:23:10 · 510 阅读 · 0 评论 -
多线程处理thread
转载出:http://www.cppblog.com/prayer/archive/2012/04/23/172427.html这两天在看Pthread 资料的时候,无意中看到这样一句话(man pthread_detach):Either pthread_join(3) or pthread_detach() should be called for each thread转载 2016-02-18 10:36:40 · 228 阅读 · 0 评论 -
基本数据类型
转载处:http://www.cnblogs.com/jcsu/articles/1317826.html1. 基本数据类型的分类:C语言中的三种基本数据类型是:整型、实型、字符型。每种类型又可以分为常量和变量。整型常量:(1) 十进制的整型常量:由数字0~9组成。如:0、10、365、-12等。(2) 八进制的整型常量:以0开头,由数字0~7组成。如:0、01转载 2016-03-01 15:26:12 · 538 阅读 · 0 评论 -
回调函数的例子
转载出:http://www.cnblogs.com/wwwkhd/archive/2011/04/19/2020936.html#include// 方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)typedef int (*CallBackFun)(char *p); // 为回调函数命名,类型命名为 CallBackFun,参数为ch转载 2015-12-24 16:42:51 · 241 阅读 · 0 评论 -
迅雷面试题:memcpy和memmove的区别
转载出:http://blog.csdn.net/zdl1016/article/details/8680864其实很早就知道两个函数其中有一个在面临内存覆盖时行为有点特别, 但是工作中很少用到此场景, 也就没有深究. 现在居然面试遇到了, 那就把研究清楚吧.memcpy 简单粗暴, 不考虑内存重叠问题. 后果程序员自负memmove 比memcpy多了层检查内存重叠的转载 2015-12-20 16:47:16 · 446 阅读 · 0 评论 -
进程的退出
进程退出A:正常退出,常见形式为在main()中的return,调用exit()类函数B:非正常退出,比如信号引起的退出,或者调用abort()类函数给自己发信号程序通过退出状态来向父进程(父进程可能就是shell)来报告一些有限的信息,由于历史上的原因(主要是wait类函数的实现),退出状态码值限制在0-255在通常的unix实现中,wait类函数得到的子程序状态是一个16位转载 2017-02-09 16:05:14 · 516 阅读 · 0 评论