linux_application
driverSir
你永远不知道以后会怎样,现在要做的就是努力!
展开
-
linux 下查杀进程
#!/bin/bashname=$1_check_pid=$2 kr=0while [ "$kr" == "1" ]do ID=`ps -ef | grep "$_check_pid" | grep "$name" | grep -v "grep" | awk '{print $2}'` for id in $ID do ...原创 2019-11-27 10:16:00 · 344 阅读 · 0 评论 -
x11 gtk qt gnome kde 之间的区别和联系
一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和 WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样 XFree只是linux下转载 2013-12-30 17:22:56 · 725 阅读 · 0 评论 -
简单的音频重采样
Performance of audio resampling software:一些重采样的方法的测试比较void _x_audio_out_resample_mono(short* input_samples, int in_samples, short* output_samples, int out_samples){ int osamp转载 2013-12-05 19:19:05 · 4227 阅读 · 0 评论 -
ST的插值算法
我们都知道,当播放速度改变的时候,会带来一个副作用,那就是音调也会随着播放的速度而改 变。播放速度加快,声音将升调,变得尖锐,播放速度减慢,声音将降调,变得低沉,当然这是题 外之话。改变音频播放速度的方法有很多,我只针对ST变速算法的核心,也就是线性插值算法的实 现。对于ST的插值算法前面已经提到。 k = (y - y0)/(y1-y0) ->y=(1-k) * y0+k转载 2013-12-04 09:30:13 · 1175 阅读 · 0 评论 -
守护进程编写
void init_daemon(void){ int pid; int i; if(pid=fork()) exit(0); //是父进程,结束父进程 else if(pid return(1); setsid(); //第一子进程成为新的会话组长和进程组长转载 2013-11-29 17:22:55 · 614 阅读 · 0 评论 -
一个简单的Makefile
CC=gccTARGET=testSRC=$(wildcard *.c)OBJECT= ${SRC:.c=.o}INCLUDES=-I/usr/include/alsaLDFLAGS=-lasoundall:$(TARGET)$(OBJECT):$(SRC)$(CC) -c $(INCLUDES) $$(TARGET):$(OBJECT)$(原创 2013-10-14 17:37:49 · 819 阅读 · 0 评论 -
linux进程间通信
http://blog.csdn.net/21aspnet/article/details/7479469转载 2013-10-18 10:33:53 · 558 阅读 · 0 评论 -
vim
h, j, k, l - 移动光标i - 在当前光标入插入a - 在当前光标后插入A - 在行末插入x - 删除当前位置的字符X - 删除当前位置的前一个字符c{motion} - 改变某一段内容C - 改变当前位置到行末的内容s - 改变当前位置的内容S - 改变当前行的内容d{motion} - 删除某些内容D - 删除当前位置到行末的内容,等同于转载 2013-10-16 15:46:13 · 617 阅读 · 0 评论 -
Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include转载 2013-10-14 16:11:27 · 919 阅读 · 0 评论 -
linux 下C语言挂载U盘
能定时主动的检查u盘 移动硬盘 usb光驱 除光驱外能实现自动mount到指定的路径对于u盘能区分有分区表的和没有分区表光驱提供了两个函数mount 和umount,并能检测vcd和cd 并使用cdfs格式进行mount。对于分区格式的支持要看大家内核的支持情况具体修改代码下面代码仅仅支持fat32的。#include #include #include #i转载 2014-02-11 15:38:41 · 7767 阅读 · 1 评论 -
fdisk mkfs
#!/bin/bashS=$1PDEV=sdgDEV=${S##*/}echo $Sif [[ $S == -* ]]then echo "uuuu" $0_org $1 exitfiif [[ "$DEV" then echo "can't mkfs $S" echo "Because it原创 2014-03-12 10:41:53 · 772 阅读 · 0 评论 -
通过tcpdump确认Linux系统是否收到和响应ping包
简单说就是发现某系统无法被ping通,需要确认是服务器收到了ping包没有响应,还是它压根没有收到ping包在Linux系统上执行以下命令1tcpdump -i eth0 icmp-i:指定检测哪个网口,不指定此参数将捕获所有接口数据,包括lo;#-v:显示详细信息,可选,对于上转载 2017-05-24 13:59:01 · 13960 阅读 · 1 评论 -
printf debug
#define AlsaDbgPrintf(a, b...) printf("zsphal: "); printf(a, ##b)//#define AlsaDbgPrintf(a, b...)#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)#define error(...) do {\ ...原创 2013-10-17 16:21:54 · 1524 阅读 · 0 评论 -
htonl、ntohl、htons、ntohs函数实现
typedef unsigned short int uint16;typedef unsigned long int uint32; // 短整型大小端互换#define BigLittleSwap16(A) ((((uint16)(A) & 0xff00) >> 8) | \ (((ui转载 2014-05-09 16:58:51 · 1065 阅读 · 0 评论 -
圆形缓冲区
圆形缓冲区(circular buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer),环形缓冲区(ring buffer),是一种数据结构用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流。目录 [隐藏] 1 用法2 工作过程3 圆形缓冲区工作机制3.1 读指针与写指针3.2 区分缓冲区满或者空转载 2014-05-07 17:16:51 · 2874 阅读 · 0 评论 -
CRC32校验算法-C实现
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。以下是CRC32的C语言实现,经过测试,能够正确运行:/***************************转载 2014-05-06 15:19:22 · 13214 阅读 · 1 评论 -
循环冗余校验(CRC)算法入门引导
写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,平常在项目中见到的CRC的代码多数都是那种效率非常低下的实现方式。其实,在网上有一篇介绍C转载 2014-05-06 15:22:32 · 1102 阅读 · 0 评论 -
linux 检测网线拨出
link_stat.c#include #include #include #include #include #include #include #include #include #include #include int get_netlink_status(const char *if_name); int ma转载 2014-03-31 14:25:30 · 929 阅读 · 0 评论 -
ioctl()函数获取本机IP、MAC
#include int ioctl(int d, int request, ...);/* Socket configuration controls. */#define SIOCGIFADDR 0x8915 /* get PA address */#define SIOCSIFADDR 0x8916 /* set PA address */#define SIOCGI转载 2014-03-31 14:34:42 · 939 阅读 · 0 评论 -
采样率转换
https://ccrma.stanford.edu/~jos/resample/Free Resampling SoftwareNote: resample, libresample, and sndfile-resample (from libsamplerate) are already included in the Planet CCRMA Distribution.转载 2013-10-12 17:47:35 · 2665 阅读 · 0 评论 -
struct stat结构体的详解和用法
//! 需要包含de头文件#include #include int stat(const char *filename, struct stat *buf); //! prototype,原型 struct stat{ dev_t st_dev; /* ID of device containing file -文件所在设备的ID*/转载 2013-10-11 16:36:29 · 1887 阅读 · 0 评论 -
vi/vim 查找替换
vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行转载 2013-06-18 11:01:05 · 640 阅读 · 0 评论 -
linux 内核信号量 用户态信号量 详解
Linux 内核中的信号量使用和用户态的信号量使用有所不同,1、内核信号量,由内核控制路径使用。2、用户态信号量分为两种,一种为POSIX,另一种为 SYSTEM V内核中信号量的构成以及使用:内核信号量的构成内核信号量类似于自旋锁,因为当锁关闭着时,它不允许内核控制路径继续进行。然而,当内核控制路径试图获取内核信号量锁保护的忙资源时,相应的进程就被挂起。只有在资源被释放时,原创 2013-05-23 16:44:13 · 11378 阅读 · 1 评论 -
Linux系统库函数 -- lseek函数用法
所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo。cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数。文件被打开时,cfo 会被初始化为 0,除非使用了 O_APPEND 。 使用 lseek 函数可以改变文件的 cfo 。 #inc转载 2013-05-30 18:07:06 · 798 阅读 · 0 评论 -
linux open read write lseek close
1. open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include ,#include ,#include 函数原型:int open(const char *pathname,int flags,int perms)参数:pathname:被打开的文件名(可包括路径名如"dev/tt原创 2013-05-30 17:03:20 · 1892 阅读 · 0 评论 -
alsa 测试程序 无限播放歌曲
/*This example reads from the default PCM deviceand writes to standard output for 5 seconds of data.*//* Use the newer ALSA API */#define ALSA_PCM_NEW_HW_PARAMS_API#include /**************原创 2013-05-30 15:47:29 · 2081 阅读 · 0 评论 -
linux信号量
#include #include #include sem_t sem;void * thread_function1(void * args){ while(1){ printf("function1 wait\n"); sem_wait(&sem); printf("function1 run\n"); }}void * thread_function2原创 2013-05-21 12:58:48 · 597 阅读 · 0 评论 -
交叉编译时候如何配置连接库的搜索路径
交叉编译的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做编译链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉编译的时候,要采取一些方法使得在编译链接的时候找到需要的库。 首先,要知道:编译的时候只需要头文档,真正实际的库文档在链接的时候用到。 (这是我的理解,假如有不对的地方,敬请网上各位大侠指教) 然后,讲讲如何在交叉编译链接的时候原创 2013-05-17 15:03:17 · 4564 阅读 · 0 评论 -
YUYV摄像头采集jpeg格式图片
PC系统:ubuntu10.04gcc版本:4.5.1视频协议:V4L2jpeg压缩库:libjpeg以上都是开源的,下载安装教程很多,不再赘述说明:(1)由于libjpeg库的例程中,输入的是RGB24格式的图像,而摄像头只能采集YUYV(YUV:422)格式数据,所以,程序中,有YUYV转换为RGB24的过程,再输入libjpeg中 (2)关于yuy原创 2013-05-17 14:53:21 · 14071 阅读 · 2 评论 -
Makefile详解
Makefile详解跟我一起写 Makefile陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix转载 2013-06-18 10:36:53 · 727 阅读 · 0 评论 -
ALSA声音编程介绍(译文)
[转]:http://hi.baidu.com/dillisbest/blog/item/819b1013b8cf075af919b8a9.html英文原文:http://www.linuxjournal.com/article/6735period(周期):硬件中中断间的间隔时间。它表示输入延时。声卡接口中有一个指针来指示声卡硬件缓存区中当前的读写位置。只要接口在运行,这个指针将循环转载 2013-07-16 09:06:59 · 690 阅读 · 0 评论 -
FLV视频封装格式详解
简介: FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。可以通过Adobe公司的RTMP(Real Time Messaging Pr转载 2013-08-23 17:03:59 · 6156 阅读 · 2 评论 -
详解大端模式和小端模式
详解大端模式和小端模式嵌入式开发交流群280352802,欢迎加入!一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡转载 2013-09-26 10:32:54 · 766 阅读 · 0 评论 -
WAVE Types
The necessary type, structure and constant defintions are in mmreg.h.All newly defined WAVE types must contain both a fact chunk and an extended wave format description within the 'fmt' chunk. RIFF转载 2013-09-26 14:16:02 · 2412 阅读 · 0 评论 -
规一化混音算法和alsa混音算法比较
混音算法#include #include #include #define IN_FILE1 "1.wav"#define IN_FILE2 "2.wav"#define OUT_FILE "remix.pcm"#define SIZE_AUDIO_FRAME (2)void Mix(char sourseFile[10][SIZE_AUDIO_FRAME],int原创 2013-10-10 09:51:28 · 13551 阅读 · 3 评论 -
wav文件格式分析详解
一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVEChunk, Format Chunk, Fact Chunk转载 2013-09-26 14:11:22 · 867 阅读 · 0 评论 -
分析elf文件的利器(常用命令)
(1)readelf针对elf文件的解析器readelf -a a.out(2)objdump -hobjdump -h a.out 将elf文件的各个段的基本信息打印出来objdump -x a.out可以打印更多的信息,但是比较杂乱(3)sizesize命令查看elf文件的代码段、数据段和BSS段的长度size a.out转载 2013-09-22 16:46:01 · 923 阅读 · 0 评论 -
Wave File Format
Table of ContentsOverviewData FormatsFile StructureWave File HeaderWave File ChunksFormat Chunk - "fmt "Data Chunk - "data"Fact Chunk - "fact"Cue Chunk - "cue "Playlist Chunk - "plst"Assoc转载 2013-09-30 16:50:36 · 2684 阅读 · 0 评论 -
gdb调试
# (gdb) set logging file # (gdb) set logging on# (gdb) thread apply all bt# (gdb) set logging off# (gdb) quit详细说明:1、# (gdb) set logging file 设置输出的文件名称2、# (gdb) set logging on输入转载 2013-09-30 15:13:09 · 933 阅读 · 0 评论 -
FLV文件格式解析
FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们转载 2013-08-26 16:57:21 · 1105 阅读 · 0 评论