linux应用层
文章平均质量分 82
paomadi
这个作者很懒,什么都没留下…
展开
-
linux 进程间通讯方法整理
一.无名管道pipe #include int pipe(int fd [2])二.fifo #include int mkfifo(const char *path, mode_t mode);三.信号 #include void (*signal(int sig, void (*func)(int)))(int); #include原创 2012-12-17 18:56:19 · 1239 阅读 · 0 评论 -
linux系统调用
一.声明系统调用的相关宏1.SYSCALL_DEFINE1~6#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)#define SYSCA原创 2013-01-31 12:43:49 · 2935 阅读 · 0 评论 -
tcpdump交叉编译及使用
第一步.下载官方网站:http://www.tcpdump.org/需要下载libpcap包和tcpdump包我下载的版本是:libpcap-1.4.0.tar.gz和tcpdump-4.4.0.tar.gz第二步.编译libpcap包2.1 解压tar -zxvf libpcap-1.4.0.tar.gz2.2 进入解压目录cd libpcap-1.4.0/2.3原创 2013-07-23 22:34:25 · 10111 阅读 · 0 评论 -
lsof交叉编译
一.交叉编译1 下载网上搜索lsof-4.80.tar.gz2.解压tar -zxvf lsof-4.80.tar.gzcd lsof_4.80tar -xvf lsof_4.80_src.tar 3.根据/lsof-4.80/lsof_4.80_src/00XCONFIG文件设置环境变量export LSOF_CC="/opt/GCC/bin/arm-none-l原创 2013-07-23 19:50:50 · 6449 阅读 · 0 评论 -
amixer,aplay,arecord交叉编译及使用
一.amixer用于控制设置 amixer的帮助提示信息Usage: amixer [command]Available options: -h,--help this help -c,--card N select the card -D,--device N select the device, default 'default' -d,-原创 2013-05-30 04:26:26 · 11777 阅读 · 0 评论 -
web服务器thttpd的移植
1.官网下载http://www.acme.com/software/thttpd/ 版本thttpd-2.25b.tar.gz2.解压 tar -zxvf thttpd-2.25b.tar.gz3../configure4.修改makefileCC = gcc -> CC = arm-none-linux-gnueabi-gcc总共有3个makefile要改压缩根原创 2013-07-23 13:45:23 · 3000 阅读 · 1 评论 -
ini文件解析c库(iniparser)
一.交叉编译ini解析库1.官方网站http://ndevilla.free.fr/iniparser下载iniparser-3.1.tar.gz2.解压tar -zxvf iniparser-3.1.tar.gz cd tar -zxvf iniparser3.修改makefileCC = gcc 修改为--> CC = arm-none-linux-gnueabi原创 2013-07-27 22:01:26 · 13349 阅读 · 1 评论 -
ffmpeg,live555,mplayer交叉编译
一.ffmpeg的编译1.从官网http://ffmpeg.org/下载 ffmpeg-2.0.tar.gz2.解压tar -zxvf ffmpeg-2.0.tar.gz 3.配置生成makefile./configure --enable-cross-compile --cross-prefix=arm-none-linux-gnueabi- --arch=arm --tar原创 2013-07-25 15:11:57 · 6015 阅读 · 0 评论 -
让qt应用程序支持触摸
一.设备驱动我的触摸屏是usb接口的可以参考下这2篇文件http://blog.csdn.net/paomadi/article/details/8754783 usb触摸屏http://blog.csdn.net/paomadi/article/details/8309861 输入子系统不是usb接口的或者自己想写多一个也可以(需要我的源码的请留邮箱说下,我贴一部分)us原创 2013-06-20 14:03:47 · 19425 阅读 · 26 评论 -
嵌入式linux下u盘升级的设计
一.内核配置,配置使其支持u盘make menu_config Device Drivers ---> [*]USB support --> USB Mass Storage supportu盘底层依赖scsi,所以scsi的配置也要配置好二.设计更新代码我是这么设计的:写个应用程序存放在文件系统的/bin目录下,取名up原创 2013-07-11 15:26:21 · 5288 阅读 · 1 评论 -
web服务器goahead的移植
1.网上下载goahead-3.1.1-0-src.tgz包2.解压tar -zxvf goahead-3.1.1-0-src.tgz3.编译cd goahead-3.1.1-0make CC=arm-none-linux-gnueabi-gcc ARCH=arm在linux-arm-default/bin中可以找到goahead4.测试修改运行./goahead测原创 2013-10-22 12:46:56 · 5753 阅读 · 0 评论 -
动态域名ddns开源客户端inadyn的移植
一.交叉编译http://inatech.eu/inadyn/readme.html下载inadyn.v1.96.2.zip解压cd inadyn修改makefileCOMPILE=gcc -Wall -pedantic -c $(ARCH_SPECIFIC_CFLAGS) $(CFLAGS) -o "$(OUTDIR)/$(*F).o" $(CFG_INC) "$<"L原创 2013-11-09 09:26:22 · 7297 阅读 · 1 评论 -
嵌入式ntp服务器的移植
一.交叉编译1.官网下载http://www.ntp.org/点击download选项页我的版本是ntp-4.2.6p5.tar.gz2.解压tar -zxvf ntp-4.2.6p5.tar.gz3.进入解压目录配置./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc或者指定安装路径./configu原创 2013-09-11 13:19:37 · 5905 阅读 · 0 评论 -
web服务器boa的移植
1.下载官方网站http://www.boa.org/我下载的是0.94.13版本2.解压tar -zxvf boa-0.94.13.tar.gz3.进入src目录./configure配置一下生成makefile文件4.修改makefileCC = gcc CPP = gcc -E改为CC = arm-none-linux-gnueabi-gcc原创 2013-07-21 14:24:32 · 4060 阅读 · 0 评论 -
linux中的轮询机制select/poll/epoll
参考:StephenChan's Tech Spacehttp://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139809.htmlhttp://xingyunbaijunwei.blog.163.com/blog/static/76538067201241685556302/比较 select sel原创 2013-05-23 12:46:51 · 12795 阅读 · 0 评论 -
二 spi 子系统(spidev.c)
一.spidev.c文件看一个设备驱动的方法:概览下重要的结构体spidev_data及全局变量device_list,bufsiz,SPIDEV_MAJOR...module_init标识的入口初始化函数spidev_init,(module_exit标识的出口函数)设备与设备驱动匹配时候调用的probe方法spidev_probe设备驱动的操作函数集file_operati原创 2013-02-27 14:50:03 · 10675 阅读 · 2 评论 -
linux下c和c++互相调用
c调用cpp创建个目录 创建4个文件 c.c--c文件 cpp.cpp--c++文件 cpp.hh--c++声明文件 Makefilec.c#include "cpp.hh"int main(){ cpp_fun();}cpp.cpp#include "cpp.hh"#include #ifdef __cplusplusextern "C"原创 2012-12-17 16:15:47 · 1659 阅读 · 0 评论 -
early_param和__setup宏
一.宏的定义在/include/linux/Init.h中#define __setup(str, fn) \ __setup_param(str, fn, fn, 0) #define early_param(str, fn) \__setup_param(str, fn, fn, 1)两个宏都会调用__setup_param跟踪进__setup_p原创 2013-01-23 15:53:23 · 2641 阅读 · 0 评论 -
linux多进程多线程互斥同步例子
进程1#include #include #include #include #include #include #define DEBUG 1#define SHARE_KEY 0x1234#define THREAD_NUM 4typedef struct{ pthread_mutex_t lock; pthread_cond_t c原创 2013-01-22 22:31:49 · 2857 阅读 · 0 评论 -
linux多线程例子
一.基本功能1.最简单例子--创建线程/*** 创建线程**/#include #include #include void *thread1(void *arg){ printf("this thread1!\n");}int main(int argc,char **argv){ int ret; pthread_t原创 2013-01-24 21:14:48 · 1724 阅读 · 0 评论 -
linux 编程--目录相关
一.头文件#include 二.结构体struct dirent {#ifndef __USE_FILE_OFFSET64 __ino_t d_ino; __off_t d_off;#else __ino64_t d_ino; __off64_t d_off;#endif unsigned short int d_re原创 2013-01-10 21:35:50 · 1072 阅读 · 0 评论 -
linux性能监视和调试工具 top 25
Top 25 Best Linux Performance Monitoring and Debugging ToolsI’ve compiled 25 performance monitoring and debugging tools that will be helpful when you are working on Linux environment. This list is n翻译 2012-12-17 20:31:21 · 2445 阅读 · 0 评论 -
linux 多线程
一.头文件#include 二.编译选项-lpthread三.结构体pthread_tpthread_attr_tpthread_barrier_tpthread_barrierattr_tpthread_cond_tpthread_condattr_tpthread_key_tpthread_mutex_tpthread_mutexattr_t原创 2013-01-15 16:33:32 · 3019 阅读 · 0 评论 -
linux 进程间通讯-共享内存
头文件#include #include #include 结构体共享内存管理结构体:struct shmid_ds { struct ipc_perm shm_perm; int shm_segsz; __kernel_time_t shm_atime; __kerne原创 2013-01-03 09:55:20 · 1106 阅读 · 0 评论 -
linux 进程间通讯--信号量
PV的定义 P就是请求资源,V就是释放资源P(sv) 如果sv大于0,减小sv。如果sv为0,挂起这个进程的执行。V(sv) 如果有进程被挂起等待sv,使其恢复执行。如果没有进行被挂起等待sv,增加sv。P表示通过的意思,V表示释放的意思System V机制一.头文件#include 二.结构体struct sembuf {unsigned sh原创 2013-01-15 11:55:48 · 1346 阅读 · 0 评论 -
list链表
一.链表头结构体struct list_head { struct list_head *next, *prev;};二.初始化链表头也就是把list的next和prew指针指向自己static inline void INIT_LIST_HEAD(struct list_head *list){ list->next = list; list->prev = lis原创 2013-01-03 12:19:52 · 1405 阅读 · 0 评论 -
六 linux串口编程
一.结构体1.termiosstruct termios { tcflag_t c_iflag; /* 输入模式标志 */ tcflag_t c_oflag; /* 输出模式标志 */ tcflag_t c_cflag; /* 控制模式标志 */ tcflag_t c_lflag; /* 本地模式标志 */ cc_t c_line原创 2013-01-30 14:23:12 · 4286 阅读 · 0 评论 -
exec函数族
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件exec函数族共6个函数:1.int execl(const char *path, const char *arg0, ... /*, (char *)0 */);path:路径arg0,arg1,...,argn:参数#include in原创 2014-01-23 16:07:17 · 2846 阅读 · 0 评论