Linux 开发
文章平均质量分 66
沉西乐恩
心态决定态度,态度决定习惯,习惯决定性格,性格决定命运!
展开
-
open函数--------------详解,flags参数全面
open(打开文件)相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件 #include#include#include定义函数 int open( const char * pathname, int flags);int open( const char * pathna转载 2015-06-17 15:05:57 · 2038 阅读 · 0 评论 -
Linux监控程序-----程序自动重启方法
1、使用脚本实现自动重启首先想到的最简单的使用shell脚本,大概思路:ps -ef | grep “$1″ | grep -v “grep” | wc –l 是获取 $1 ($1 代表进程的名字)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数,这里也可使用crontab来实现。这种方法比较土,还是可以基本解决问题,转载 2015-07-03 10:07:52 · 2568 阅读 · 0 评论 -
查看Linux内核版本的命令
方法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的转载 2015-06-15 15:34:37 · 1174 阅读 · 0 评论 -
v4l2报错------uvcvideo: Non-zero status (-71) in video completion handler.
v4l2报错:uvcvideo: Non-zero status (-71) in video completion handler. (未解决,求大神指点)arm CPU型号AM3354,Linux版本3.2.0,普通的UVC摄像头;移植了mjpg-streamer的程序后,刚开始还没问题,调试过程中反复的打开、关闭,运行时间长了,慢慢的随机报如上错误,时间长了后一帧画面都采不到,一打原创 2015-06-15 15:32:38 · 6052 阅读 · 0 评论 -
linux下/etc/inittab详解
init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没转载 2015-08-07 10:19:31 · 1557 阅读 · 0 评论 -
U-Boot中的Splash Screen
U-Boot中的Splash ScreenU-Boot配置 在U-Boot中使用Splash Screen,可以实现U-Boot启动后,在LCD上显示自定义图片,起到友好的界面显示作用。使用Splash Screen需要在配置文件中使能BMP图片功能和SPLASH功能:#define CONFIG_CMD_BMP#define CONFIG_SPLASH_SCRE转载 2015-07-15 11:31:52 · 2362 阅读 · 0 评论 -
Linux报错-------ln: 无法创建符号链接"***": 只读文件系统
对u-boot源码进行平台选择时输入: make am335x_evm_config 报错: ln: 无法创建符号链接"asm": 只读文件系统 make: *** [am335x_evm_config] 错误 1 拿到u-boot源码后放到虚拟机的共享share文件夹中,解压,然后配置。没注意我犯了一个很低端的错误... ...原创 2015-07-15 10:44:51 · 17339 阅读 · 2 评论 -
u-boot启动画面制作
参考资料:【1】U-boot开机logo的制作方法(Tekkaman Ninja):http://blog.chinaunix.net/u1/34474/showart_2085233.html【2】U-Boot中的Splash Screen(Charlie Chen):http://blog.chinaunix.net/u1/51797/showart.php?id=2070554【转载 2015-07-15 11:33:27 · 3522 阅读 · 0 评论 -
Linux内核启动中显示的logo的修改
1,配置内核,使内核启动时加载logo,在源代码的主目录下make menuconfig Device Drivers ---> Graphics support --->选上 并 进入 Bootup logo -->选上 Standard 224-color Linux logo原创 2015-08-17 17:30:12 · 3998 阅读 · 0 评论 -
IPC(进程间通信)机制
IPC三种通信机制是指:信号量、共享内存、消息队列。信号量:通过操作系统中的PV操作来实现;共享内存:申请一块内存,进程A往共享内存中写,其他的进程就可以通过读出共享内存中的内容来获取进程A所传送的信息;消息队列:创建一个消息队列,进程A往队列里面写,那么进程B通过读队列中的容来获取进程A传送的信息。具体的实现其实就是用三组函数来实现的,而且转载 2015-08-08 12:14:24 · 781 阅读 · 0 评论 -
Linux系统日志API---------openlog(), syslog(), closelog()
这里面的三个函数openlog, syslog, closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。 通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上转载 2015-06-12 10:32:59 · 1406 阅读 · 0 评论 -
Linux系统调用--------wait() 与 waitpid()
waitpid系统调用在Linux函数库中的原型是:#include #include pid_t waitpid(pid_t pid,int *status,int options)从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供了另一种更灵活的方式转载 2015-07-03 11:58:40 · 930 阅读 · 0 评论 -
read函数---------详解
read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位置向后移。注转载 2015-06-15 09:15:38 · 37408 阅读 · 0 评论 -
linux下对文件操作报错----------Unable to *** ***: Read-only file system
在linux中对文件操作时报错:Unable to chmod ***: Read-only file system用如下指令能解决该问题: 输入su root 进入超级用户 输入 mount -o remount rw / 然后可输入 mount 查看原创 2015-06-19 13:50:58 · 3191 阅读 · 0 评论 -
物理内存映射---------mmap和munmap详解
内存映射函数mmap, 负责把文件内容或者其他对象映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。文件或者其他对象被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。用法:void *mmap(void *start, si转载 2015-06-24 16:55:20 · 1115 阅读 · 0 评论 -
POSIX---互斥锁(pthread_mutex)和条件变量(pthread_cond)的用法
条件变量是利用共享的全局变量进行同步的一种机制。(1)创建 动态创建pthread_cond_t cond;int pthread_cond_init (pthread_cond_t * cond,const pthread_condattr_t * attr);//动态调用API函数创建,attr设置属性,通常为NULL静态创建pthread_cond_t cond原创 2015-05-15 13:52:18 · 919 阅读 · 0 评论 -
进程间通信---------有名管道(named pipe/FIFO)
1、有名管道相关概念管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO转载 2015-06-10 14:18:31 · 1364 阅读 · 0 评论 -
进程间通信--------共享内存
进程间通信——共享内存共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。这块共享虚拟内存的页面,出现在每一个共享该页面的进程的页表中。但是它不需要转载 2015-06-11 17:35:41 · 562 阅读 · 0 评论 -
进程间通信--------有名管道如何产生阻塞
使用有名管道时,我们经常想要的是这样:在有名管道中没有数据时A进程挂起,当B进程往有名管道里写数据时激活A进程。于是就得考虑有名管道是如何使进程挂起,我们又当如何设置。 首先,在创建管道成功后,我们可以使用open()、read()和write()这些函数来操作有名管道。与普通文件的开发设置一样,对于为读而打开的管道可在open()中设置O_RDONLY,对于为写而打开的管道可在open原创 2015-06-10 14:40:32 · 2192 阅读 · 0 评论 -
linux下压缩解压指令tar----------看完瞬间记住参数用法,从此不用再查
以前解压压缩文件老是去死记这些参数和指令,其实理解原理就不用记了,请往下看tar 常用参数如下:-c: create 创建一个压缩文件,那么压缩文件的时候肯定就少不了他-x: extract 解压一个压缩文件,那么解压文件的时候也就少不了他了-t: 查看压缩文件(tarfile)里面的文件以上三个参数有很强的目的性,所以有且仅有一个存在。-z: 解原创 2015-06-19 15:05:25 · 1812 阅读 · 0 评论 -
Linux建立文件目录链接的方法
1. 使用方式:ln [option] source_file dist_file -f 建立时,将同档案名删除. -i 删除前进行询问. ln -s abc cde 建立abc 的软连接 ln abc cde 建立abc的硬连接,转载 2015-07-09 19:05:21 · 2106 阅读 · 0 评论 -
Linux用户态定时器用法以及犯错总结
采样的时候要用到定时器,定时的进行采样。这时候,就会用到setitimer函数了。1. 要使用setitimer函数,要包含头文件:#include 2. 该函数的原型是:int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);3. 参数:(1)int whic原创 2015-09-17 20:39:02 · 4610 阅读 · 0 评论