
linux编程技术
文章平均质量分 55
杨柳
linux c/c++ sip qt php
展开
-
linux下DNS服务器配置
一,理解一些名词的含义@ ----这个符号意味着SOA与域是一样的 IN -----IN是提供IP地址的域名类当,与A,PTR或CNAME记录一起使用时可将域名映射为IP地址, 反之一样 NS -----域名服务器指定的区域DNS服务器的域名或IP地址 MX ----MX记录定义何种机器来为域或单个主机传送电子邮件,为域定义就是告诉每个人将邮件 发送给该域中要与之通信的人或原创 2015-01-27 14:09:53 · 1224 阅读 · 0 评论 -
线程cpu绑定技术
初次了解到cpu亲和力这个概念,通俗的说就是把某个线程绑定到某个cpu上去跑,不知道这样说准不准确。 linux用 cpu_set_t数据结构表示cpu核的集合。第一位表示第一个cpu核,最后一位表示最后一个核。 Linux 内核 API 提供了一些方法,让用户可以修改位掩码或查看当前的位掩码: ?sched_set_affinity() (用来修改位掩码) ?sched_get_转载 2013-11-14 09:29:51 · 3068 阅读 · 0 评论 -
内存池技术
书名:《C++应用程序性能优化》 作者:冯宏华、徐莹、程远、汪磊 等编著 出版社:电子工业出版社 出版日期:2007 年 03 月 ISBN:978-7-121-03831-0 购买: 中国互动出版网、dearbook推荐章节:前言 和 目录第 2 章:C++ 语言特性的性能分析第 6 章:内存池更多推荐书籍,请访问 de转载 2013-11-14 09:09:19 · 1268 阅读 · 0 评论 -
linux之读写锁技术
在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢? 有,那就是读写锁。 (1)首先,我们定义一下基本的数据结构。[cpp] vi转载 2013-11-14 09:42:18 · 2284 阅读 · 1 评论 -
linux多线程之嵌套锁技术
嵌套锁这个概念,主要是为了根据编程中的一种情形引申出来的。什么情况呢,我们可以具体说明一下。假设你在处理一个公共函数的时候,因为中间涉及公共数据,所以你加了一个锁。但是,有一点比较悲哀。这个公共函数自身也加了一个锁,而且和你加的锁是一样的。所以,除非你的使用的是信号量,要不然你的程序一辈子也获取不了这个锁。[cpp] view plaincopyprint?HAND转载 2013-11-14 09:46:01 · 4259 阅读 · 0 评论 -
linux多线程之原子锁技术
原子锁是多线程编程中的一个特色。然而,在平时的软件编写中,原子锁的使用并不是很多。这其中原因很多,我想主要有两个方面。第一,关于原子锁这方面的内容介绍的比较少;第二,人们在编程上面习惯于已有的方案,如果没有特别的需求,不过贸然修改已存在的代码。毕竟对很多人来说,不求有功,但求无过。保持当前代码的稳定性还是很重要的。 其实,早在《多线程数据互斥》这篇博客中,我们就已经介绍过原子锁。本篇转载 2013-11-14 09:44:39 · 4895 阅读 · 1 评论 -
linux音频编程技术
linux音频编程,记录一些可能用得到的信息。音频编程的过程很简单,按照一定的模式打开声卡(open),设置声卡参数(ioctl),读声卡缓存(read)录音,写声卡缓存(write)放音,最后关闭声卡(close)。主要是IOTCL函数中相关的命令:SOUND_PCM_WRITE_BITS:设置声卡的量化位数,8或者16,有些声卡不支持16位;SOUND_PC转载 2011-12-02 20:16:25 · 2704 阅读 · 0 评论 -
linux多播技术
CU首页 >> 读书频道 >> 分类浏览 >> Linux网络编程 >> 阅读内容Linux网络编程11.3 多 播单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通转载 2011-12-20 16:08:41 · 10091 阅读 · 1 评论 -
linux音频采集技术
采集的时候,先写wav头文件,头文件格式如下: 表1 WAV文件的文件头 偏移地址字节数类型内容00H~03H4字符资源交换文件标志(RIFF)04H~07H4长整数从下个地址开始到文件尾的总字节数08H~0BH4字符WAV文件标志(WAVE)0CH~0FH4字原创 2012-03-20 11:16:51 · 4321 阅读 · 0 评论 -
linux文件权限技术
这几天闲的蛋疼,写点东东出来,百分之八十是引用哦。一,文件类型,拥有者,拥有组,其他人权限ls -l都会用吧,之后会很很多行。然后:这种表示方法一共有十位“9 8 7 6 5 4 3 2 1 0 - r w x r - x r - x 第9位表示文件类型,可以为p、d、l、s、c、b和-: p表示命名管道文件 d表示目录文件 l表示符号连接文件 -表示普通文原创 2012-07-02 15:01:30 · 1153 阅读 · 0 评论 -
linux调试工具Valgrind之使用技术
•内存使用检测,包括: –内存泄漏 –非法内存访问 –未初始化变量使用 –重复释放内存 •多线程竞争 –检测死锁 -检测竞争Valgrind还能做什么? •性能分析 –Cachegrind+ cg_annotate 它模拟 CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程序中 cache转载 2013-09-18 11:49:41 · 1106 阅读 · 0 评论 -
linux下gdb使用技术
格式: x /nfu 说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮点数格式显转载 2013-09-27 09:37:23 · 824 阅读 · 0 评论 -
linux多线程之自旋锁技术
自旋锁是SMP中经常使用到的一个锁。所谓的smp,就是对称多处理器的意思。在工业用的pcb板上面,特别是服务器上面,一个pcb板有多个cpu是很正常的事情。这些cpu相互之间是独立运行的,每一个cpu均有自己的调度队列。然而,这些cpu在内存空间上是共享的。举个例子说,假设有一个数据value = 10,那么这个数据可以被所有的cpu访问。这就是共享内存的本质意义。 我们可以看一段Lin转载 2013-11-14 09:49:04 · 1484 阅读 · 0 评论 -
修改Linux启动Logo技术
1、 修改启动Logo,换成自定义的图片目的:开机后显示自定义的图片,替代小企鹅。(1) 准备一张.png图片(2) 使用Linux命令将图片转换为ppm图片:# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm# pnmquant 224 logo_linux_clut224.原创 2013-11-07 09:25:16 · 2050 阅读 · 0 评论 -
视频播放器实现技术(一)
一、知识点 ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流.PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长度不等的数据包, 并加上包头就形成了打包的基本码流PES流.TS流(Transport Stream): 也叫传输流, 是由固定长度为188字节的包组成,原创 2013-10-29 10:51:11 · 10024 阅读 · 1 评论 -
视频播放器实现技术(二)
播放器解决了视频播放的问题。通常来说,解决问题最好的办好就是大而化小,小而化无。因为整个播放过程是一个复杂的过程,所以播放器也采用分而治之的办法。简单来说,这个大问题可以分解为四个小问题。1,数据接收;2,数据解析;3,数据解码;4,数据输出。我会对mplayer和vlc这两个开源播放器的代码结构来说明这四个问题。一,数据接收(access)自然,我们不能无中生有,要处理数原创 2013-10-29 10:52:40 · 3332 阅读 · 0 评论 -
mysql 命令行脚本导入导出
首先,使用mysqldump命令的前提是,在Cmd中进入mysql安装目录下的bin目录下,才可以使用该命令。我的mysql安装在E:盘,所以,首先进入bin目录下:E:/Program Files/MySQL/MySQL Server 5.0/bin>然后,你就可以使用该命令了。 1、导出整个数据库mysqldump -u 用户名 -p 数据库名转载 2015-07-28 13:26:41 · 3998 阅读 · 0 评论 -
Linux crontab定时执行任务 命令格式与详细例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 crontab文件的一些例子: 30 21 * * * /usr/转载 2016-11-03 10:12:22 · 1009 阅读 · 0 评论 -
kernel移植体系总结
kernel移植总结: 给你一套kernel,一套板子。你首先要做的是: 1,查看硬件板子的相关资源,如什么样子的sdram,什么样子的flash等等,mcu有哪些外设,等等。 2, 内核的启动,与存储设备(如flash),和文件系统关系甚大,所以要重点解决这两个方面的问题。 3,完了,内核移植里面很重要的一个方面就是驱动移植,看你需要什么样子的驱动,就做什么样子的原创 2012-07-31 09:55:11 · 1046 阅读 · 0 评论 -
关于LINUX驱动的一些疑问
1,像字符设备混杂设备,都只注册一个设备就OK了,,为了什么都的驱动除了注册设备还要注册驱动。而驱动结构体里面一般都有probe函数。。???????? 2.平台分驱动注册和设备注册这个我是知道的,注册完了会调用驱动结构体里面的PROBE函数,好像真正的驱动都是在设备结构体里面完成了,话有设备节点的生成。??3,除了这些,还有很多驱动程序,里面用的是各种注册函数,头痛,,剪不断,理原创 2012-07-19 11:03:32 · 772 阅读 · 0 评论 -
bootloader移植体系总结
在嵌入式linux世界里,涉及的东西很杂,点点滴滴都可以成为一个系统体系,所以,从今后我的csdn博客里面的文章逐渐会体系化,从而做到,每个一个知识点都体系化,从横向和纵向两个方面慢慢深入化。这里为bootloader移植体系总结,献血一个轮廓出来。我会慢慢深入总结。u boot移植总结: 给你一套bootloader,一套板子。你首先要做的是: 1,查看硬件板子的相关原创 2012-07-31 09:49:54 · 1295 阅读 · 0 评论 -
修改linux共享内存大小
这是实际linux系统显示的实际数据:beijibing@bjb-desktop:/proc/sys/kernel$ cat shmmax 33554432beijibing@bjb-desktop:/proc/sys/kernel$ cat shmmni4096beijibing@bjb-desktop:/proc/sys/kernel$ cat msgm原创 2013-09-06 09:38:44 · 21211 阅读 · 1 评论 -
linux输入子系统之/dev/eventN
这两天在移植tslib1.4,碰到一个问题。我看很多人移植的时候,触摸屏设备节点都是dev/event0,我用的是友善的TINY6410,虽然内核文件系统等都用自己移植的,但还用的一线触摸驱动,所以我的触摸屏设备节点是/dev/touchscreen-1wire.所以我想到一个问题,触摸屏驱动,设备节点用touchscreen挺好,干嘛用eventX之类的东西。我在想eventX和里面的touch原创 2011-11-06 11:24:36 · 1160 阅读 · 0 评论 -
linux动态编译和静态编译
为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。用动态链接库编译生成的可执行文件需调用.so文件方可正常运行,灵活但稍显麻烦;用静态链接库编译生成的可执行文件可直接运行,不用再调用如.so般的依赖库文件,简单但不灵活。静态链接库:1、编译生成目标文件gcc -c struct.c2、创建静态库ar cqs libstruct.转载 2011-11-09 09:32:45 · 33452 阅读 · 3 评论 -
新板子SM8120
今天拿到一块新板子,sm8120,专门用于视频音频编解码的,以前没有接触过,乘这个机会,好好研究一下。有什么新的进展我会记在这里的,,呵呵呵,,优快云,为我提供了一个写工作日志的平台。原创 2011-11-15 13:09:48 · 1184 阅读 · 0 评论 -
linux动态库lib和inlcude 加载方法
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。原创 2013-06-08 09:11:42 · 4391 阅读 · 0 评论 -
linux设备驱动笔记一
关于linux驱动,可以说是一滩深水,在没有高人指点的情况下,学起来感觉额外费劲。还好,这几天算是有一点进步吧,在这里先记下来。 以前,总提到设备模型这个东西,但我当时其实并不了解设备模型是什么东西。直到最近.... 所谓linux设备驱动模型,应该从linux2.6内核说起,2.4内核是没有这么一个概念的,我的理解是这样子的。我们接触过很多,各种lin原创 2012-08-21 13:58:51 · 1131 阅读 · 0 评论 -
linux 多线程之顺序锁技术
在linux内核中,有很多同步机制。比较经典的有spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)、等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rcu应该可以不算在经典之列,它们是两种比较有意思的同步机制。seqlock(顺序锁)用于能够区分读与写的转载 2013-10-18 14:24:44 · 2433 阅读 · 0 评论 -
vim编译器使用技术
先从vim的安装说起:1,首先把 vimrc和gvimrc 文件的位置改在/etc目录下:echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.hecho '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h,2,,./c原创 2012-06-27 08:26:35 · 3875 阅读 · 0 评论