嵌入式linux高级编程学习
文章平均质量分 86
KylinAnAn
这个作者很懒,什么都没留下…
展开
-
文件IO操作编程
<br />通过一个简单的copy程序,完成文件的复制程序,了解基本的文件I/O文件读写的基本步骤<br />./command file1 file2 把文件1的内容复制到文件2如果文件2不存在则创建<br />------------------------------------------------------------------------------------<br />#include<stdio.h><br />#include<stdlib.h><br />#include<sys原创 2011-04-27 18:13:00 · 847 阅读 · 0 评论 -
Linux C 串口编程
arch/arm/include/asm/termbits.hstruct termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lf原创 2012-05-16 10:49:49 · 15381 阅读 · 2 评论 -
Linux进程之间通信消息队列
消息队列就是一些消息的列表,用户可以在消息队列中添加消息和读取消息。消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势。同时这些消息又存在于内核中,由“队列”ID来标识消息队列的实现包括创建或打开消息队列,添加消息,读取消息和控制消息队列这四种操作。1. 创建或打开消息队列,msgget(),创建消息队列的数量会受到系统消息队列数量的原创 2012-04-23 21:33:20 · 1375 阅读 · 0 评论 -
Linux进程间通信共享内存
进程可以直接读写内存,不需要任何数据的复制。为了在多个进程间交换信息,内核专门留出一块内存区,内存区可以由需要访问的进程将其映射到自己的私有地址空间,进程直接读写这一内存区,而不需要进行数据的复制,提高了效率。由于多个进程共享内存,需要依靠同步机制如互斥锁和信号量。共享内存的实现分为三个步骤:1. 创建共享内存,shmget()shmget(创建或打开共享内存)表头原创 2012-04-21 14:11:18 · 4626 阅读 · 0 评论 -
Linux 进程间通信管道
在Linux中使用较多的进程间通信方式主要有以下几种1)管道Pipe2)信号Signal3)消息队列Message Queue:是消息的链接表4)共享内存Shared Memory:最有效的进程间通信方式5)信号量Semaphore:主要作为进程之间以及同一进程的不同线程之间的同步和互斥6)套接字Socket:用于网络中不同机器之间的通信1. pipe(建立无名管道)原创 2012-04-17 23:01:35 · 898 阅读 · 0 评论 -
makefile 自动编译同一个目录下的所有文件
SOURCE = $(wildcard *.c)OBJS = $(patsubst %.c,%.o,$(SOURCE)) CROSS_COMPILE = arm-linux-CXX = gccCFLAGS += --staticCLFAGS += -Wall LDFLAGS += -lm all:btsbts:$(OBJS) $(CROSS_COMPILE)$(CXX) -原创 2012-04-14 11:52:34 · 18156 阅读 · 1 评论 -
多线程编程
1.互斥锁基本原理 互斥以排他方式防止共享数据被并发修改。互斥锁是一个二元变量,其状态为开锁(允许0)和上锁(禁止1),将某个共享资源与某个特定互斥锁绑定后,对该共享资源的访问如下操作:(1)在访问该资源前,首先申请该互斥锁,如果该互斥处于开锁状态,则申请到该锁对象,并立即占有该原创 2011-07-12 16:44:59 · 655 阅读 · 0 评论 -
Linux进程存储管理
1.进程内存结构1)代码区(text segment)。加载的是可执行文件代码段2)全局初始化数据区/静态数据区(Data Segment)。加载的是可执行文件数据段,存储于数据段的数据的生存周期为整个程序运行过程3)未初始化数据区(BSS)4)堆区(heap)用于动态内存分配一般由程序员分配和释放,若程序员不释放,程序结束时有可能由OS回收5)栈区(stack)。由编译器自动分配释放,存放函数的原创 2011-06-28 09:00:00 · 513 阅读 · 0 评论 -
线程间同步PV操作
<br />1.同步(synchronization)指的是多个任务(线程)按照约定的顺序相互配合完成一件事情<br />2.由信号量来决定线程是继续运行还是阻塞等待<br />3.信号量代表一类资源,其值表示系统中该资源的数量<br />4.信号量是一个爱保护的变量,只能通过三种操作来访问,初始化,P操作(消费者)V操作(生产者)<br />5.信号量的值为非负整数<br />所用函数<br />sem_init();<br />sem_wait();<br />sem_post();<br />pthr原创 2011-05-04 20:32:00 · 1362 阅读 · 0 评论 -
线程间互斥
<br />1.引入互斥(mutual exclusion)锁的目的是用来保证共享数据操作的完整性<br />2.互斥锁主要用来保护临界资源<br />3.每个临界资源都由一个互斥锁来保护,任何时刻最多只能有一个线程能访问该资源<br />4.线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁,如果无法获得锁,则线程会阻塞直到获得锁为止<br />用到的函数<br />pthread_mutex_init();<br />pthread_create();<br />pthread_join();<原创 2011-05-04 20:28:00 · 744 阅读 · 0 评论 -
fcntl(文件锁)
<br />fcntl(文件锁)<br />表头文件 #include <unistd.h><br /> #include <fcntl.h><br />函数定义 int fcntl(int fd, int cmd, struct flock *lock);<br />函数说明 fd:文件描述符<br />设置的文件描述符,参数cmd代表欲操作的指令<br />F_DUPFD <br />复制参数fd的文件描述符,执行成功则返回新复制的文件描述符,<br />F_GETFD <br原创 2011-04-29 13:29:00 · 1021 阅读 · 0 评论 -
linux进程
<br />1.进程:一个程序的一次执行过程<br />2.Linux的进程分为三个段<br />数据段:存放的是全局变量、常数以及动态数据分配的空间<br />正文段:存放程序的代码<br />堆栈段:存放的是函数的返回地址,函数的参数以及程序中的局部变量<br />3.进程的类型<br />交互进程:该类进程是由shell控制和运行的,可以在前台运行,也可以在后台运行<br />批处理进程:该类进程不属于终端,它被提交到一个队列中以便顺序执行<br />守护进程(daemon):该类进程在后台运行,它一原创 2011-04-26 20:30:00 · 482 阅读 · 0 评论 -
ubuntu 安装使用dbus
ubuntu12.04 安装dbus1.下载dubs下载https://dbus.freedesktop.org/releases/dbus/ dbus-1.8.0.tar.gz2.配置编译./configure –prefix=/home/xx/dbus/install/ (安装目录) make make install3.使用dbus-daemon是...原创 2018-04-11 15:12:57 · 15643 阅读 · 6 评论