Linux系统编程
wshngyf
这个作者很懒,什么都没留下…
展开
-
Linux下创建库文件
C语言库文件里面存放的是预先写好的函数,我们只需要直接使用就行了,编译器会在库文件中找到它,如果库文件中没有我们需要的函数,但是这个函数我们经常使用,那么我们就可以把这个函数做成库文件,放到库中去。在Linux下,库文件有两种形式,一种是静态函数库,一种是共享函数库。首先我们把这个函数的功能写出来,创建一个 pr.c的文件。#include void pr(){ printf(原创 2015-04-02 09:03:44 · 717 阅读 · 0 评论 -
进程间通信总结(一)
了解进程间通信(IPC,Internet process connect),我们要搞明白进程间为什么要通信,会遇到哪几种情况,针对这些情况我们分别怎么来解决。下面我们来说下进程间通信的目的,然后针对这些问题进行解决。1,数据传输:一个进程向另一个进程传输数据。2,资源共享:多个进程共享一段资源。3,通知事件:一个进程向其它进程发送消息,通知某种事件(是停止,是终止)。4,进原创 2015-04-06 20:32:06 · 435 阅读 · 0 评论 -
进程间通信(管道)
管道有什么样的特点呢?1,管道传递数据是单向性的,又称之为半双工管道。就是要么只能读,要么只能写。要想全双工通信,就需要建立两个管道。2,管道只能用于具有亲缘关系的进程间通信,无亲缘关系的进程能否用管道呢?下面回答管道是如何实现通信的?先简单说一下,两个进程进行读写数据是通过创建管道时系统设置的文件描述符进行的,文件描述符就是告诉这个进程要操作哪个文件。每次能传输多少数据呢?原创 2015-04-12 09:05:56 · 475 阅读 · 0 评论 -
进程间通信(信号量通信)
当我们在实际编程时会发现,有时候多个进程或线程共用一段代码,我们要确保某个时刻只有一个进程或线程对这段代码进行访问。为了防止多个程序同时访问一个共享资源引发问题,可以用信号量控制临界区域的访问。信号量分为以下三种:System V信号量,在内核中维护,可用于进程或线程间的同步,常用于进程的同步。Posix有名信号量,一种来源于POSIX技术规范的实时扩展方案,可用于进程或线程间的同步,原创 2015-05-02 20:56:52 · 564 阅读 · 0 评论 -
用make编译多个.c文件
最近买了三本经典的C语言书在看(C和指针,C陷阱与缺陷,C专家编程)。同时在学习Linux系统编程。在编译.c文件时,有时太多,不想一个一个敲,就用make写了一下,很简单。obj:=$(patsubst %.c,%.o,$(wildcard *.c))test:$(obj) gcc -o test $(obj)注意 gcc这一行命令前面不是空格 是TAB键 这里用到了两个原创 2015-06-27 23:03:37 · 2187 阅读 · 0 评论 -
进程间通信有名管道(自创建自删除)
这段时间学习进程间通信,给大家分享一下,这些理解即可,实际中用到会写的更复杂。先把代码贴出来#include #include #include #include #include #include #include #include int main(void){ char buf[128]; int a; a = mkfifo("/test/6.原创 2015-06-30 22:17:46 · 3230 阅读 · 0 评论 -
Linux设备驱动中的中断处理
这段时间学习好累,没有及时更新。总结了几篇,没有及时发表。实现中断需要两步:1.向内核注册中断 2.实现中断处理函数使用前当然先要注册,下面就是注册函数的原型。注意红色字体的几个参数,下面将这几个参数什么作用。中断注册函数:request_irq(unsigned int irq, irq_handler_thandler, unsigned long fl原创 2015-07-25 15:15:20 · 853 阅读 · 0 评论 -
Linux中malloc与kmalloc
应用程序中获取内存用malloc函数,malloc返回的是线性地址,在驱动程序中不能使用。原创 2015-07-25 15:31:28 · 4612 阅读 · 0 评论 -
Linux下自定义开机启动程序
Linux系统启动后,运行的第一个是Init进程,也就是1号进程。用vim编辑器打开 /etc/rc.d/rc.local 。在最后一行添加了一条命令:touch /test/1111 在test目录下创建1111的文件。下次开机启动的时候就会执行这条命令 。其实开机启动的方法很多,这个比较简单。原创 2015-07-05 23:38:53 · 1043 阅读 · 0 评论