随笔分类 - LANGUAGE-C
摘要:``` cat bb.c include include include include include define KEYVALLEN 100 / Delete left side blank / char l_trim(char szOutput, const char szInput) {
阅读全文
摘要:``` #cat aa.c #include #include #include #include #define DEBUG #ifdef DEBUG static int log_debug(const char *format, ...) { va_list argPtr; int count; va_start(argPtr, format); ...
阅读全文
摘要:``` cat aa.c / ringbuf .c / include include define NMAX 8 int iput = 0; / 环形缓冲区的当前放入位置 / int iget = 0; / 缓冲区的当前取出位置 / int n = 0; / 环形缓冲区中的元素总数量 / doub
阅读全文
摘要:ref from : http://blog.csdn.net/zhuxiaoping54532/article/details/49680537 main 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于
阅读全文
摘要:一、背景 list.h文件位于linux/include下,内核中链表的操作函数都在其中。它有许多关于链表的操作函数,所以我们可以尝试将list.h拉到用户态中来使用,这样,我们在用户态中若要用到链表就可以直接调用其中已经实现好的函数了。我这里将拉到用户态的经过“改造”后的list.h文件代码列出,
阅读全文
摘要:1 include include include include void thread_function(void arg) { int i; for (i=0; i include include include int myglobal; void thread_function(void
阅读全文
摘要:一个简单的执行程序的GNU automake自动生成Makefile的方法及案例 在GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写的,必须与GNU autoconf一并使用,具体的生成过程请参看GNU automake的wikip
阅读全文
摘要:Linux direct io使用 在linux 2.6内核上使用direct io不难,只需按照如下几点来做即可: 1,在open文件时加上O_DIRECT旗标,这样以通告内核我们想对该文件进行直接io操作。 2,在源文件的最顶端加上_GNU_SOURCE宏定义,或在编译时加在命令行上也可以,否则
阅读全文
摘要:Linux 内核链表 list.h 的使用 C 语言本身并不自带集合(Collection)工具,当我们需要把结构体(struct)实例串联起来时,就需要在结构体内声明指向下一实例的指针,构成所谓的“链表”。而为了实现对链表的操作,我们需要另外实现一系列的函数,例如添加、删除、搜索、复制等等。而利用
阅读全文
摘要:随机数1G cat malloc_rand_1g.c include / printf, scanf, NULL / include / malloc, free, rand, system / include include int main () { int size; int n; char
阅读全文
摘要:struct timeval和gettimeofday() struct timeval结构体在time.h中的定义为: 其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒 struct timeval结构体在time.h中的定义为: 其中,tv_sec为
阅读全文
摘要:Example 1 Example 2 Example3 单链表的基本操作大全之C语言实现 1. 单链表的定义 链表是通过一组任意的存储单元来存储线性表中的数据元素,这些存储单元可以是连续的也可以是不连续的。为了建立起数据元素之间的关系,对于每个数据元素除了存放数据元素自身的信息外,还必须有包含的指
阅读全文
摘要:当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。 说明: 由于编译的警告各
阅读全文
摘要:共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何 数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则 只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共
阅读全文
摘要:\主 题: C语言面试题大汇总,个人觉得还是比较全地!!! 作 者: free131 (白日?做梦!) 信 誉 值: 100 最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。发布之前先申明两点: 1
阅读全文
摘要:一、linux和os: 1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握 3、
阅读全文
摘要:Linux 下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。系统调用实际上就是指最底层的一个调用,在 linux 程序设计里面就是底层 调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的 api, 采用这样的方式
阅读全文
摘要:cat main.c include include "para_callback.h" void say_hello(void str){ printf("Hello %s\n",(const char )str); } void count_numbers(void num){ int i; f
阅读全文
摘要:第一种:传出指向静态内存或者已经分配动态内存的指针 第二种: 在函数中分配动态内存并且传出指向这块内存的指针
阅读全文