Linux系统编程
人生如叶
时间的逆旅,落叶的温柔
展开
-
/dev/input/eventX
转自:http://blog.csdn.net/lanmanck/article/details/8423669相信各位使用嵌入式的都希望直接读取键值,特别是芯片厂家已经提供input驱动的情况下,例如GPIO或者扫描类型的键盘。那么在应用层如何通过C语言获取键值呢?给兄弟们一个重量级的源码,看下面,大家拿去编译运行就知道怎么回事了,当然,可以使用select而不是while()来转载 2016-03-01 18:06:11 · 1014 阅读 · 0 评论 -
触摸屏接口
转自:http://book.51cto.com/art/201304/390529.htm在Linux系统中,所有的输入设备(键盘、鼠标、触摸屏)都使用统一的输入系统进行管理。每个/dev/input/eventX都对应着一个输入设备。这些输入设备可以通过对应的/sys/class/ input/inputX/name文件查询到对应的设备名称。在/proc/bus/input/devic转载 2016-02-18 14:30:33 · 3336 阅读 · 0 评论 -
linux 获取文件大小
获取文件大小这里有两种方法:方法一、范例:[cpp] view plain copy print?unsigned long get_file_size(const char *path) { unsigned long filesize = -1; FILE *fp;转载 2016-04-15 14:18:49 · 271 阅读 · 0 评论 -
Linux获取目录中的文件列表
分类:编程语言代码如下:Linux下使用GCC 编译即可 #include #include #include #include int main(){ DIR *dir; struct dirent *ptr; dir = opendir("/home/zhangyang/kmeans");转载 2016-04-15 14:46:36 · 834 阅读 · 0 评论 -
madlife 交叉编译
如何在PC和arm中的虚拟机中制作一个mp3 player。 需要准备的库文件有zlib-1.2.3.tar.gz,libid3tag-0.15.1b.tar.gz,libmad-0.15.1b.tar.gz,madplay-0.15.2b.tar.gz。 zlib-1.2.3.tar.tar用于文件的压缩和解压 libid3tag-0.15.1b.tar.gz mp3的解码库 libmad转载 2017-04-21 08:37:37 · 534 阅读 · 0 评论 -
linux定时器
简介这篇文章主要记录我在试图解决如何尽可能精确地在某个特定的时间间隔执行某项具体任务时的思路历程,并在后期对相关的API进行的归纳和总结,以备参考。问题引出很多时候,我们会有类似“每隔多长时间执行某项任务”的需求,乍看这个问题并不难解决,实则并不容易,有很多隐含条件需要考虑,诸如:时间精度是多少?时间是否允许出现偏差,允许的偏差是多少,偏差之后如何处理?系统的负载如何?这个程序允许占用的系统资转载 2017-05-23 15:53:09 · 356 阅读 · 0 评论 -
内存锁定
mlockall函数 1. 原型: int mlockall(int flags); 2. mlockall函数将调用进程的全部虚拟地址空间加锁。防止出现内存交换,将该进程的地址空间交换到外存上。 3. mlockall将所有映射到进程地址空间的内存上锁。这些页包括: 代码段,数据段,栈段,共享库,共享内存,user space kernel data,memory-mapped file.当转载 2017-04-24 15:00:57 · 3259 阅读 · 0 评论 -
a.a 使用了 b.a 则第三方c.*无法直接获取b.a的函数定义
b.a 定义了funcb1(),funcb2(); a.a定义了funca(): 如: void funca() { printf(“this is funca\n”); funcb1(); } 有一个文件c,编译链接了a.a,可以使用funca();但是无法使用b.a的函数即使申明也没用。若要使用只能将b的源文件同a的源文件一起变异成.a原创 2017-06-22 12:38:12 · 312 阅读 · 0 评论 -
linux 基于timerfd的纳秒级定时器
一.timerfd介绍1:timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,所以能够被用于select/poll的应用场景。 1. 使用方法 timerfd提供了如下接口供用户使用 timerfd_create() int timerfd_create(int clockid, int flags); timerfd_create用于创建一个定时器转载 2017-05-24 11:08:23 · 3135 阅读 · 0 评论 -
pthread 主线程子线程退出关系
我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下。1、 主线程等待新线程先结束退出,主线程后退出。正常执行。 实例代码:#include "apue.h" #include <pthread.h> pthread_t ntid;//线程ID void printids(const char *s) { pid_转载 2017-09-14 13:02:48 · 3894 阅读 · 0 评论 -
alsa 无噪音播放pcm
之前的代码播放各种pcm始终有噪音,后来修改以后播放没有噪音了。 (有个奇怪的问题,代码改回有噪音的版本却不能够播放了,有时间再分析解决) 简易代码:/*This example reads standard from input and writesto the default PCM device for 5 seconds of data.*//* Use the newer ALSA原创 2017-04-22 10:58:05 · 1938 阅读 · 0 评论 -
linux 基于alsa 使用libmad 解码库实现MP3文件的播放
本设计根据libmad库中minimad.c改写成的,保留了原始的英文注释,minimad.c实现了MP3的解码成PCM音频数据,打印到屏幕上。本设计添加了alsa的播放设置函数,以及在解码output的函数中,将输出写入到声卡中,实现了MP3 文件的解码播放。 注意:本设计编译之前需要编译libmad库, 编译时需要连上 -lmad -lasound 的选项。 使用方法为在终端:./mp3-p转载 2017-09-20 14:41:35 · 3360 阅读 · 0 评论 -
Linux Alsa音频编程
前序:这里了解一下各个参数的含义以及一些基本概念。 样本长度(sample):样本是记录音频数据最基本的单位,常见的有8位和16位。 通道数(channel):该参数为1表示单声道,2则是立体声。 桢(frame):桢记录了一个声音单元,其长度为样本长度与通道数的乘积。 采样率(rate):每秒钟采样次数,该次数是针对桢而言。 周期(period):音频设备一次处理所需要的桢数,对于音频设转载 2017-04-07 17:32:30 · 557 阅读 · 0 评论 -
Linux sync命令的作用
写缓存命令——sync在用reboot命令启动unix系统后,系统提示出错信息,部分应用程序不能正常工作。经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的原因,最后想到了写缓存命令——sync,在reboot前没有运行sync命令,导致了系统文件的改变而不能正常工作。 sync 命令运行 sync 子例程。如果必须停止系统转载 2016-06-03 17:43:55 · 506 阅读 · 0 评论 -
linux xfs文件系统无法用readdir获取dirent文件类型d_type则用stat获取暨stat函数讲解
linux stat函数讲解stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:转载 2016-06-25 14:01:43 · 2276 阅读 · 0 评论 -
linux printf color颜色 \033[
color.h#define NONE "\033[m"#define RED "\033[0;32;31m"#define LIGHT_RED "\033[1;31m"#define GREEN "\033[0;32;32m"#define LIGHT_GREEN "\033[1;32m"#define BLUE原创 2016-09-23 17:14:29 · 2570 阅读 · 0 评论 -
静态库制作使用示例
制作:使用:当.o一样使用原创 2016-11-03 15:31:31 · 347 阅读 · 0 评论 -
linux python 更新版本
安装完CentOS6.5(Final)后,执行#Python与#python -V,看到版本号是2.6,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,有兴趣的朋友可以参考下这篇文章: 更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、软件包都要依赖预装的老版本python的,比如yum。 更新python: 第1步:更新gcc,因为转载 2017-01-11 17:23:18 · 1998 阅读 · 0 评论 -
Linux查看系统配置常用命令
uname -a # 查看内核/操作系统/CPU信息 lshw -C display #查看显卡信息 head -n 1 /etc/issue # 查看操作系统版本 cat /proc/cpuinfo # 查看CPU信息 hostname # 查看计算机名 lspci -tv # 列出所有PCI设备 lsusb -tv # 列出所有USB设备 lsmod # 列出加载的内核模块 en转载 2017-04-13 11:23:13 · 604 阅读 · 0 评论 -
获取SATA盘序列号
获取SATA盘序列号直接上代码,亲测可用#include <unistd.h>#include <fcntl.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <sys/ioctl.h>#include <scsi/sg.h>#define SCSI_TIMEOUT 5000 /* ms */static转载 2017-03-01 15:55:24 · 965 阅读 · 0 评论 -
Ubuntu上安装MySQL (apt-get)
Ubuntu上安装MySQL非常简单只需要几条命令就可以完成。1. sudo apt-get install mysql-server2. apt-get isntall mysql-client3. sudo apt-get install libmysqlclient-dev如果不能执行成功请先执行:sudo apt-get update安装过转载 2017-01-08 03:00:36 · 427 阅读 · 0 评论 -
c调用c++接口库
C语言中没有类的概念,如何调用呢,需要封装一下,增加一个中间层。这个中间层屏蔽了类,提供一个函数给上层,并且还要用c++编译器来编译。 下面举例,说明一个封装策略: //code in add.cxx #include "add.h"int sample::method(){ cout}//code in add.h #include using n转载 2016-11-18 10:59:52 · 511 阅读 · 0 评论 -
Linux 获取摄像头数据并实时显示
联想笔记本z475,Ubuntu16;使用v4l2获取摄像头数据;使用SDL来显示YUV数据;#include#include#include#include#include#include#include#include#include//#include//if SDL2 then use texture instead of overlay#include原创 2016-09-04 02:46:09 · 10026 阅读 · 2 评论 -
Linux 音频编程
前序:这里了解一下各个参数的含义以及一些基本概念。样本长度(sample):样本是记录音频数据最基本的单位,常见的有8位和16位。通道数(channel):该参数为1表示单声道,2则是立体声。桢(frame):桢记录了一个声音单元,其长度为样本长度与通道数的乘积。采样率(rate):每秒钟采样次数,该次数是针对桢而言。周期(period):音频设备一次处理所转载 2016-08-23 21:53:49 · 1001 阅读 · 0 评论 -
makefile has modification time in the future暨更改linux系统时间
时间戳问题可以更改系统时间,也可以更改文件的修改时间sudo date -s '20160727 18:51:56' //sudo date -s 20160727 //sudo date -s 18:51:56Usage: touch [OPTION]... FILE... Update the access and modification times of eac原创 2016-07-27 10:20:53 · 3707 阅读 · 0 评论 -
linux time
#include #include #include void sysLocalTime(){ time_t timesec; struct tm *p; time(×ec); p = localtime(×ec); printf("%d%d%d%d%d%d\n", 1900+p原创 2016-07-26 10:59:16 · 317 阅读 · 0 评论 -
学习linux内核
如果没有学过OS,先看汤子赢:这本书虽然是通用教材,但是OS思想算法绝大多数和linux基本一致,也算必备基础然后看内核主线.看过后你会发现和上面那本书框架差不多,不过这里单一针对linux主要的算法和实现原理再升级:这是不朽之作,真正的把内核原理剖析的相当细,原理讲解也很清楚!其他分支《深入理解网络技术内幕》《设备驱动》《精通设备驱动开发》《内核架构》都可以涉猎,此外还有个边角料《程转载 2016-09-02 11:20:40 · 344 阅读 · 0 评论