linux应用基础
BoArmy
这个作者很懒,什么都没留下…
展开
-
消息队列工作机制 msgsnd: Invalid argument
msgsnd: Invalid argument最近写个一个小程序 测试System V的消息队列工作机制,写完代码后编译通过但是运行出现这个错误msgsnd: Invalid argument于是去Google ,可惜没有找到满意的结果,后来仔细检查代码发现 没有对消息类型赋值,花了我2个小时,终于搞定,以此告诫程序员要细心啊,呵呵这是代码/* 发送*/#转载 2013-03-09 08:44:13 · 1631 阅读 · 0 评论 -
exec函数族的使用
exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。 下面来看下exec函数族: #include int execl(const char *path, const char *转载 2013-03-09 08:46:36 · 990 阅读 · 0 评论 -
文件描述符和文件指针的区别
文件描述符:在linux系统中打开文件就会获得文件描述符,它是个很小的正整数。每个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。 文件指针:C语言中使用文件指针做为I/O的句柄。文件指针指向进程用户区中的一个被称为FILE结构的数据结构。FILE结构包括一个缓冲区和一个文件描述符。而转载 2013-03-08 21:35:52 · 831 阅读 · 0 评论 -
execv使用
函数原型int execv(const char *progname, char *const argv[]); //#include unistd.h> 2. 用法介绍 execv会停止执行当前的进程,并且以progname应用进程替换被停止执行的进程,进程ID没有改变。progname: 被执行的应用程序。argv: 传递给应转载 2013-03-09 08:44:09 · 878 阅读 · 0 评论 -
解决避免僵死进程的问题
怎样产生僵尸进程的: 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程 是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表转载 2013-03-09 08:44:11 · 643 阅读 · 0 评论 -
在主函数中调用能让自己成为守护进程的函数
摘自pptp-1.7.2/pptp_compat.c点击(此处)折叠或打开#include sys/types.h>#include sys/stat.h>#include fcntl.h>#include sys/types.h>#include unistd.h>#include stdlib.h>#include strings.h>#原创 2013-03-09 08:44:15 · 757 阅读 · 0 评论 -
环形缓冲区的实现
http://blog.csdn.net/wanxiao009/article/details/5519514 环形缓冲区是嵌入式系统中十分重要的一种数据结构,比如在一个视频处理的机制中,环形缓冲区就可以理解为数据码流的通道,每一个通道都对应着一个环形缓冲区,这样数据在读取和写入的时候都可以在这个缓冲区里循环进行,程序员可以根据自己需要的数据大小来决定自己使用的缓冲区大小。转载 2013-03-09 08:40:45 · 1243 阅读 · 0 评论 -
V4L2应用程序框架
http://blog.chinaunix.net/space.php?uid=14163325&do=blog&id=64515V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video\dvb\FM...,多数驱动都在向V4l2迁移。更好地了解V4L2先从应用入手,然后再深入到内核中结合物理设备/接口的规范实现相应的驱动。本文先就V4L2在视频捕捉或camera方面的应用框转载 2013-03-09 07:28:39 · 527 阅读 · 0 评论