
linux
chenyuNowUser
这个作者很懒,什么都没留下…
展开
-
select()函数,作者写的很好,
关于select()函数的解释,向作者学致敬!!!原址:http://blog.youkuaiyun.com/zhw888888/article/details/4034515 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式blo转载 2013-01-07 17:06:24 · 570 阅读 · 0 评论 -
linux下lseek()函数理解
lseek()函数理解,我们都知道lseek()可以改变文件的偏移量,当执行lseek()函数后,文件当前的偏移量会发生变化,但是如果紧跟着进行测试其文件的大小,可以看出文件的大小并没有发生变化,因为他没有进行I/O的操作,它并没有改变文件的大小,接着用write()进行写入,在紧接着进行文件大小的测试,可以看出,文件的大小发生了变化,总结:lseek()改变了文件的偏移量,但是并没有更新到文件的原创 2013-03-14 21:45:44 · 2364 阅读 · 0 评论 -
基于MPlayer的QT媒体播放器
这几天在做关于qt的东西,开始做的基于RTSP的播放器,我用的是MPlayer,可是卡着了,链接的时候老是出差错,只能播放完整的媒体,不能处理流媒体,既然这样我就做一个本地媒体播放器了。我们知道在qt中同一个界面上的部件,如果不使用进程或线程,当一个部件处于活动时,整个界面会处于一种冻结的状态,所以这里我使用了进程。1.新建Qt项目,类名为mplayer_video。下一步,下一步,我原创 2013-03-03 22:09:48 · 9155 阅读 · 4 评论 -
ABI与 EABI
ABI: ABI(应用二进制接口)涵盖了各种细节:如数据类型、大小和对齐;调用约定(控制着函数的参数如何传送以及如何接受返回值);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。一个完整的ABI,像Intel二进制兼容标准,允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。原创 2013-03-12 16:56:15 · 883 阅读 · 0 评论 -
STDOUT_FILENO STDIN_FILENO STDERR_FILENO 和stdin stdout stderr
对于STDOUT_FILENO STDIN_FILENO STDERR_FILENO 和stdin stdout stderr 在使用的时候要注意,虽然他们表示的意思是差不多的,都对应于标准输入,标准输出,标准出错,但是他们的类型是不一样的。在编程时,我使用了函数fprintf(),我想把信息输出到标准输出,也就是终端,开始我没有注意,我用的是fprintf(STDOUT_FILENO,"%s",原创 2013-03-11 22:15:56 · 4307 阅读 · 0 评论 -
ubuntu中gcc版本的降低或者升高
在ubuntu中有可能我们的gcc版本过高或者过低,需要改变到合适的版本,,,在/usr/bin/目录下,我们可以看到一些gcc开头的文件,其中有一个是gcc,用ls命令看一下,他是个链接文件,链接到当前的gcc文件,也即是说,他是连接到当前使用的gcc上的,所以改变他的链接源文件就可以了,假如我们现在的gcc是gcc-3.0,我们要升级到gcc-4.6,我们先下载一个gcc-4.6安装,会在原创 2013-03-12 08:40:01 · 6432 阅读 · 0 评论 -
const char *的理解
在linu函数手册中,我们常看到一些函数的定义,比如 : int stat(const char *path, struct stat *buf); 在这个函数里有个const ,const char *path,即不能通过改变path的值来改变这个字符串的值,而对于 struct stat *buf来说,它为什么没有const呢。这是因为我们要通过这个函数,获取系统返回的内容, buf的值是要被原创 2013-03-11 22:23:51 · 1801 阅读 · 0 评论 -
如何在C代码中调用C++非成员函数
我们有时会在C代码中调用C++代码中的非成员函数,那么应该怎么调用呢?我在网上看了一下,说说自己的理解。例如:C++代码中有函数function()void function(){/**/}如果想要在C中使用这个函数,那么C++这的函数前要加上 extern "C",即在c++中应该这样写:extern "C" void function();原创 2013-03-14 21:53:40 · 1322 阅读 · 0 评论 -
无线网络视频监控系统基本概念和术语
无线网络视频监控系统基本概念和术语 1.网络摄像机与模拟摄像机的区别模拟摄像机,或称摄像头,输出CVBS模拟视频信号,PAL制或者NTSC制。模拟摄像机多采用CCD器件,目前也有采用CMOS器件的。有枪机、半球、球机等多种形式,球机内置云台,可上下左右的转动。输出的接口常见的有BNC,莲花等。常见的模拟摄像机如下图示:模拟摄像机输出信号可直接接到电视上查看,转载 2013-03-15 23:08:37 · 3214 阅读 · 0 评论 -
linux下的休眠和待机
if you# cat /sys/power/statemem diskyou canecho “mem” > /sys/power/state 这相当于待机echo “disk” > /sys/power/state 这相当于休眠from http://linux.chinaunix.net/bbs/viewthread.php?tid=1057578命令行中执行如下转载 2013-07-19 10:09:52 · 1807 阅读 · 0 评论 -
>/dev/null 2>&1的理解
感觉这个写的不错,明白易懂,就转载了一下:shell中可能经常能看到:>/dev/null 2>&1命令的结果可以通过 %> 的形式来定义输出,其中 %> 代表文件描述符我们将这个命令组合:“>/dev/null 2>&1” 拆为四部分来分析下:1:首先 0> 表示stdin标准输入; 1> 表示stdout标准输出; 2> 表示stderr错误输出;2:符号转载 2013-04-28 00:24:41 · 943 阅读 · 0 评论 -
Out of memory: Kill process scoreor sacrifice child
现在遇到一个问题,就是在系统运行大约9个小时后,会处于一种死机的状态,界面冻结。由于时间太长,重现很麻烦,今天终于等到了,看着它慢慢的走向“死亡”。查看了一下日志信息,dmesg,打印出如下信息: 1.407338] NET: Registered protocol family 17[ 1.407420] VFP support v0.3: not present[原创 2013-04-26 16:51:03 · 10519 阅读 · 4 评论 -
qt中乱码的解决方案
我的中文为什么没法显示?在Qt使用中经常有朋友会碰到这样的问题。通过google搜索,会发现已经有人解决过了,无非就是重新设置一下默认的编码器先调用下面两个函数之一QTextCodec *textc=QTextCodec::codecForName(“gbk”);QTextCodec *textc=QTextCodec::codecForName(“utf8″);然后调用下面3转载 2013-04-16 20:48:56 · 876 阅读 · 0 评论 -
arm-linux-gcc:命令未找到
我们在ubuntu下编译适合开发板的内核的时候,会出现“arm-linux-gcc:命令未找到”的问题,如果你要是没安装交叉工具链,或者安装了,没有把它加入到系统的环境变量中,我也就不说什么了,自己反思吧。如果上述的你都做了,那么你在编译内核的时候是使用了 sudo make zImage 这个命令(当然么有sudo,你的权限是不够的 O(∩_∩)O),既然我们使用了 sudo这个超级用户命令原创 2013-03-22 14:14:35 · 5718 阅读 · 0 评论 -
ubuntu下jthread 和jrtplib的安装
ubuntu12.04关于 jrtp 的一些说明:说明 1 : jrtp 有两种数据接收方式:第一种是用 jthread 库提供的线程自动在后台执行对数据的接收。第二种是用户自己调用 RTPSession 中的 Poll 方法。如果采取第一种方法则要安装 jthread 库,则安装 jthread-1.2.1.tar.gz ,而且 jthread-1.2.1 必须先与 jrtp-3转载 2013-03-31 16:51:53 · 3145 阅读 · 0 评论 -
SVN与TortoiseSVN的使用
SVN可以说是CVS(版本控制系统)的加强版,在linux下我们可以构架自己的SVN系统。ubuntu11.101.在终端下安装svn: $ sudo apt-get install subversion2.可以查看一下是否安装成功,用命令:$ svnadmin --version 如打印出:svnadmin,版本 1.6.12 (r955767)原创 2013-04-01 14:12:58 · 1047 阅读 · 0 评论 -
编译jrtplib的时候出现问题
编译环境:ubuntu12.04gcc 4.6.1编译jrtplib的时候出现问题rtperrors.cpp:206:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]rtperrors.cpp:206:1: warning: deprec原创 2013-03-31 16:41:05 · 1700 阅读 · 0 评论 -
GStreamer-CRITICAL **: gst_element_make_from_uri: assertion `gst_uri_is_valid (uri)' failed
在Qt中,使用phonon播放视频的时候,出现了GStreamer-CRITICAL **: gst_element_make_from_uri: assertion `gst_uri_is_valid (uri)' failed, 这是由于后端解码出现了问题,在QT下后端解码可以使用 vcl,mplayer,xine,gstreamer,在qt中使用gstreamer这个后端解码,可以在终端原创 2013-03-08 18:45:03 · 13504 阅读 · 4 评论 -
QT中得到文件路径,获取文件名
QString file_fullpath, file_name; QFileInfo info;file_fullpath = QFileDialog::getOpenFileName(this,tr(""),0,tr(""));info = QFileInfo(file_fullpath);file_name = in原创 2013-03-08 18:20:10 · 9789 阅读 · 1 评论 -
RTP/RTCP/RTSP/SIP/SDP 关系(转)
RTPReal-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是原创 2013-01-14 19:36:25 · 1880 阅读 · 0 评论 -
Linux网络编程(转载)
(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我们的转载 2013-01-14 14:43:49 · 1175 阅读 · 0 评论 -
LINUX中EABI和ABI的理解
我在编译linux2.6.30的时候,关于是否在内核特性主页中选择ABI或EABI出现了疑问,现在网上引用了下面的内容,在此向作者表示感谢:1。什么是ABIABI,application binary interface (ABI),应用程序二进制接口。既然是 接口,那就是某两种东西之间的沟通桥梁,此处有这些种情况:A。应用程序 操作系统;B。应用程序 (应用程序所原创 2013-01-25 09:46:41 · 4056 阅读 · 0 评论 -
linux下tftp32的使用
在进行linux开发的时候,可能会用到tft32把文件从宿主机上下载到开发板上,使用:1.在宿主机上,下图红色的部分,你要发送的文件所在的目录在下面是你的宿主机的IP地址,一般打开tftp32后,它会自动的填入, 2。例如,我要把上述目录中的文件 chenyu.dat 发送到开发板上,那么在超级终端上,输入 tftp -gr chenyu.d原创 2013-01-09 20:47:09 · 1679 阅读 · 0 评论 -
多线程实现socket()下的多人聊天实验
服务器端,部分主要代码 while(1) { if((clientfd = accept(sockfd,(struct sockaddr*)&their_addr,&sin_size)) == -1)//接收客户端连接 { perror("accept"); exit(1); }原创 2013-01-09 20:24:41 · 1259 阅读 · 0 评论 -
在进程间,通过socket()进行通信,实现聊天功能
这里的服务器只是作为一个相当于中转站的功能,把收到的数据写到共享内存,把要读取的数据从共享内存发给需要的进程,,,,,代码,改自internet/**这是服务器的代码/#include #include#include //数据类型定义#include#include //定义数据结构sockaddr_in#include //提供socket函数及数据结构原创 2013-01-08 10:59:58 · 778 阅读 · 0 评论 -
getdtablesize()函数的作用
刚才在看daemon进程是=时,看到了getdtablesize()函数,额。。。。。。。没见过,不知道怎么用,,呼呼,在网上查了一下,原来,它是用来返回这个进程的文件描述表的项数,也就是说这个进程打开的文件的数目,就是这个意思。。。原创 2013-01-02 17:21:39 · 8119 阅读 · 2 评论 -
关于fcntl()函数的疑问
下面是源码,我的疑问在源码里已经标出来了运行的时候,把这个源文件编译,然后打开两个终端,在这两个终端里运行这个程序,对于加与不加printf()的疑问,加和不加运行结果不一样????为什么呢???跪求。。。。。。#include #include #include #include #include #include #include void lock_set原创 2013-01-04 11:14:43 · 722 阅读 · 0 评论 -
RTP:实时传输协议详解(转)
实时传输协议RTP1.RTP协议:RTP( Real-time Transport Protocol)协议最初是在70年代为了尝试传输声音文件,把包分成几部分用来传输语音,时间标志和队列号。经过一系列发展,RTP第一版本在1991年8月由美国的一个实验室发布了。到本世纪1996年形成了标准的的版本。很多著名的公司如Netscape ,就宣称“Netscape LiveMedia”是基于RT转载 2013-01-14 19:42:48 · 2729 阅读 · 0 评论 -
RTSP协议,这个写的不错,赚了
1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer转载 2013-01-15 14:15:37 · 40950 阅读 · 2 评论 -
mplayer命令
最近用QT做了个播放器,由于安装的QT里phonon出现了问题,无法播放视频,所以我用了mplayer这个第三方库。mplayer有两种控制方式,一种是接受来自键盘的,一种是来自命令的,默认是接受键盘命令。你可以给他指定参数,让他作为后台程序,接受命令控制。在mplayer官网上,可以看到下面的命令:SLAVE MODE PROTOCOL-----------------原创 2013-03-08 18:36:23 · 6375 阅读 · 0 评论 -
关于MPlayer对RTSP支持的疑问
最近在做一个QT的项目,实现流媒体的在线播放,是基于RTSP协议的。我们只做客户端,服务器采用的是利live555。对于音频的播放,我一开始采用的播放器是madplay,它支持音频流的在线播放。既然是播放器那么它也得要能播放视频,但是madplay是不能作为视频播放器的,所以我采用了一个linux下使用率很高的开源的播放器MPlayer。它的界面很友好,现在最新的已经是1.1版了,可以到它的官网上原创 2013-03-03 21:18:04 · 7041 阅读 · 4 评论 -
在linux网络UDP通信中,关于客户端是否绑定的理解
最近在做一个实例,是用RTSP协议完成。服务器已经有了,只需要把客户端做好就行了,在做的过程中发现了一些问题,就是关于UDP客户端是否绑定的问题。也许大家在书上看到的大多都是说UDP客户端不需要绑定,直接就可以和服务器通信,一开始我也是这样认为的,而且我也是这样做的,可是做着做着发现出现了问题。 在UDP通信中,我们建立一个服务器,进行绑定,等待客户端的连接请求,现把原创 2013-01-18 23:12:23 · 5831 阅读 · 1 评论 -
RTSP协议,感觉还不错
关于 RTSP.RTSP协议是一个非常类似HTTP协议的流控制协议。它们都使用纯文本来发送信息,而且rtsp协议的语法也和HTTP类似。Rtsp一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码 。这是个好消息。它们主要的区别是HTTP协议是没有状态的, http协议在发送一个命令后,连接会断开,而且命令之间没有依赖性。不同的是RTSP的命令需要知道现在正处于一个什么状态,也转载 2013-01-17 14:04:49 · 964 阅读 · 0 评论 -
ubuntu11.10下实现boa的编译,在ubuntu上运行
系统:ubuntu11.10内核版本:linux-3.0.57编译器:4.6.1boa:boa-0.94.13 今天,看了boa服务器的一些操作,想在ubuntu下实现一个小的服务器,这里先介绍一下boa服务器, boa服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码原创 2013-01-31 19:11:29 · 3943 阅读 · 0 评论 -
ubuntu11.10下madplay移植出现audio: /dev/dsp: No such file or directory
这两天想用C++写个小程序,通过调用程序播放MP3音乐文件,当然被调用的程序非madplay了,可是但编译好后,如运行:./madplay chenyu.mp3 按理说,这是可以播放的,可是,却出现了 在/dev/dsp No such file or directory,原来ubuntu自带的内核里没有声卡的支持,只好把它的内核从新编译了,我在网上发现了一个很好的教程,现在引用到此,以便日后查原创 2013-01-27 13:23:12 · 6139 阅读 · 4 评论 -
编译基于arm平台的内核,出现error: invalid option `abi=aapcs-linux'
CHK include/linux/version.h UPD include/linux/version.hmake[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h UPD include/linux/utsrelease.h原创 2013-01-16 15:30:37 · 1540 阅读 · 0 评论 -
linux下tar.xz的解压方法
今天想看一下linux下的开源视频播放器,在网上下了一个tar.xz的文件包--MPlayer-1.1.tar.xz,它的形式看起来和tar.gz很像,也是采用了两层的处理,我在win下我试了一下,可以用7z来解压,然后再拷到linux中;也可以直接在linux下解压,命令如下:先:xz -d ***.tar.xz 解压出 MPlayer-1.1.tar,原创 2013-01-30 12:46:14 · 1023 阅读 · 0 评论 -
2>&1
我们会见到 /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.还有的是这样写的:command > file 2>file 或者 command > file 2>&1 那么他们有什么不同的地方. 首先command > file 2>file 的意思是将命令所产生的标准输转载 2013-07-22 14:41:52 · 962 阅读 · 0 评论