- 博客(18)
- 收藏
- 关注
原创 pthread多线程例子
#include <stdio.h>#include <pthread.h>void *mythread1(void){int i;for(i=0;i<1000;i++){printf(“mythread1! \n”);sleep(1); }}void *mythread2(void){int i;for(i=0;i<1000;i++...
2018-11-01 23:45:48
1528
转载 动态库与静态库优缺点比较
源地址 https://blog.youkuaiyun.com/sunshinewave/article/details/39155755动态库与静态库优缺点比较(2012-10-18 15:31)我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都 重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函...
2018-10-24 18:33:08
4988
转载 内核中的printk, <0>的优先级最高,<7>优先级最低
内核中的printkprintk与printf的用法是差不多的,最大的区别就是printk可以指定打印的优先 级。另外一个区别就是,printf只用在用户态,printk用于内核态。/* printk’s without a loglevel use this… */#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVE...
2018-10-24 16:58:08
679
转载 Linux驱动编程中EXPORT_SYMBOL()介绍
一、查看内核驱动代码你会发现很多的函数带有EXPORT_SYMBOL()宏定义。二、那么EXPORT_SYMBOL的作用是什么?EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。三、使用方法1、在模块函数定义之后使用“EXPORT_SYMBOL...
2018-10-24 16:46:57
582
转载 printk打印无输出是的解决方法
原作者 https://blog.youkuaiyun.com/wx601056818/article/details/80113983打印级别格式:printk(KERN_EMERG " 1111111 KERN_EMERG\n");printk( “<0> 1111111 KERN_EMERG\n”);1.基本解决方法(如果这种方法不行,结尾处说明另一种小众原因)用到的命令1&g...
2018-10-24 16:04:55
2880
转载 Linux内核module_param的使用
原作者链接 https://blog.youkuaiyun.com/dysh1985/article/details/78020801.定义模块参数的方法:module_param(name, type, perm);其中,name:表示参数的名字;type:表示参数的类型;perm:表示参数的访问权限;数组类型模块参数的定义:用逗号间隔的列表提供的值;声明一个数组参数:module_p...
2018-10-24 15:43:09
415
转载 内核模块编译--Makefile写法
内核模块编译-Makefile写法如果编译内核模块,可以编写Makefile,然后执行make命令即可。Linux2.6的Makefile模板如下:#Makefile2.6ifneq ($(KERNELRELEASE),)#kbuild syntax. dependency relationship of files and target modules are listed he...
2018-10-23 19:07:00
4153
1
转载 解决insmod: error inserting 'hello.ko': -1 Invalid module format
实现 功能:在PC的LINUX实现驱动测试,不用在2440上测试解决insmod: error inserting ‘hello.ko’: -1 Invalid module format第一次写Linux驱动,环境搭建了好久,第一次可能是由于GCC的版本问题,编译出来的驱动只能insmod,而无法rmmod然后是make时使用的内核版本和本系统的版本不一致,导致出现insmod: err...
2018-10-23 18:01:26
1402
转载 内核模块编程--Makefile不是makefile
今天编写了一个简单内核模块,加载进内核,步骤很简单,但是当makefile写完之后make时老过不去,屏幕上方显示:make[1]: 正在进入目录 /usr/src/linux-headers-2.6.35-22-generic' scripts/Makefile.build:44: /home/lxy/kernel/Makefile: 没有那个文件或目录 make[2]: *** 没有规则可...
2018-10-23 17:47:15
742
转载 linux进程控制之信号量 semget,semctl,semop
转载自 https://www.cnblogs.com/52php/p/5851570.html这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信 – 信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我...
2018-10-13 12:13:28
1425
转载 linux进程通信之消息队列
消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式,进程可以向其中按照一定的规则添加新消息,另外一些进程则可以从消息队列中读走,和管道一样,读走就没有了。采用的是 system V消息队列,它随内核持续,,只有在内核重启,或者人工删除时,该消息队列才会删除。消息队列函数由msgget、msgctl、msgsnd、msgrcv四个函数组成。下面的表格列出了这四个函数的函数原型及其...
2018-10-12 19:40:27
297
转载 linux中stat函数和使用方法
stat 函数讲解表头文件: #include &lt;sys/stat.h&gt; #include &lt;unistd.h&gt;定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: ...
2018-10-12 19:31:05
5922
转载 linux进程间通信--消息队列相关函数(ftok)详解
转自https://blog.youkuaiyun.com/andylauren/article/details/78821655ftok消息队列、信号量、共享内存常用在Linux服务端编程的进程间通信环境中。而此三类编程函数在实际项目中都是用System V IPC函数实现的。System V IPC函数名称和说明如下表15-1所示。表15-1 System V IPC函数消息队列 ...
2018-10-12 19:28:41
655
原创 linux进程通信之共享内存
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据一种最快的方法,一个进程向共享区域写入数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。共享内存实现两个步骤:1.创建共享内存,使用shmget函数。2.映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。3.当进程空间不需要共享内存时,把它从进程空间脱离转至:http://blog.c...
2018-10-11 21:55:11
260
原创 Linux进程间通信之信号
产生一个信号:当用户按某些键时,产生信号硬件异常产生信号:除数为0,无效的存储访问等,这些情况由硬件检测到,将其停止内核,然后内核产生适当的信号通知进程,例如 内核正访问一个无效的存储去的进程会产生一个 SIGSEGV 信号进程使用 kill函数将信号发送给另一个进程kill命令发送信号linux中总共有30中信号:例如SIGINT : 来自键盘的中断信号(ctrl+c)SIGKI...
2018-10-09 20:20:40
158
原创 liux 命名管道fifo
无名管道pipe 和 命名管道fifo 区别:pipe用于父子进程间通信;fifo用于系统中任何两个进程间通信*int mkfifo( const char pathname, mode_t mode)用于创建管道。命名管道其本质是 文件pathname : fifo文件名mode: 属性 (同文件操作的属性一样)返回值:0表示创建成功,-1表示创建失败。一旦创建一个fifo,...
2018-10-06 13:09:34
291
转载 Linux中link,unlink,close,fclose详解
每一个文件,都可以通过一个struct stat的结构体来获得文件信息,其中一个成员st_nlink代表文件的链接数。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当通过shell的touch命令或者在程序中open一个带有O_CREAT的不存在的文件时,文件的链接数为1。&nbsp;&nbsp;&nbsp;&nbsp;&
2018-10-06 12:47:01
206
原创 学习linux pipe无名管道函数
管道:pipe 它把一个进程的输出和另一个进程的输入链接在一起一个进程(写进程)在***管道尾部***写入数据一个进程(读进程)在***管道头部***读出数据管道分为 无名管道 和 有名管道无名管道只能用于 父进程和子进程之间的通信有名管道可用于系通间任意两个进程通信int pipe(int filedis[2]); 创建管道当一个管道建立时,它会创建两个文件描符file...
2018-10-06 08:02:15
640
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人