linux文件特殊权限:SUID,SGID,SBIT 通常我们看到的文件的权限就是rwx这个三个读、写、可执行的权限的组合,但是,眼尖的朋友可能会发现有些文件的权限怪怪的?譬如说/tmp和/usr/bin/passwd,如下图所示: 不应该只有rwx吗?还有其他的特殊权限(s跟t)啊?s和t到底是什么呢?Set UID 当s这个标志出现在文件拥有者的x权限上时,例如刚刚提到的/usr/bin/pass
linux下的c++filt命令 一个简单的linux命令,确实不值得大费周折,但是如果能与实际开发工作联系起来,解决实际开发中的困惑,在生动的实际场景中学习命令,那无疑是棒棒哒的感觉。 最近刚好用c++filt解决了相关实际问题,故而方向如下: 我们知道,在c++中,是允许函数重载的,也就引出了编译器的name managing机制,今天我们要介绍的c++filt命令便与此相关。
一些多媒体相关术语 一、单播、多播(组播)和广播、直播、点播1、单播 网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。 2、多播(组播) “多播”也可以称为“组播”,在网络奇数的应用并不是很多,网络视频会议、网络视频点播特别适合采用多播方式。因为如果采用单
RTSP协议详解 1、概述1.1 RTSP简介 RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准,该协议定义了一对多应用程序如何有效地通过IP网络传输多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传
H264基本概念之宏块、片和片组 一、宏块(Macro Block):一个编码图像首先要划分成多个块(4 X 4像素)才能进行处理,显然宏块应该是整数个块组成,通常宏块大小为16 X 16个像素。宏块分为I、P、B宏块,I宏块只能利用当前片中已解码的像素作为参考进行帧内预测;P宏块可以利用前面已解码的图像作为参考图像进行帧内预测;B宏块则是利用前后向的参考图形进行帧内预测。 二、片(Slice):一帧视频图像可编码成一个或
场与帧 “先有场后有帧”。 首先看一下什么是“逐行扫描”。为了获得活动的图像,电影和电视是把若干幅静止的画面快速地连续播放,我们就会觉得这些画面上的物体是在连续地运动着。每一幅“静止”的画面称为一“帧”(Frame),电影的播放速度是24帧/秒,PAL制电视是25帧/秒,NTSC制电视是30帧/秒。电视的每帧画面又是由若干条水平方向的扫描线组成的、PAL制为625行/帧,NTSC制为52
H264 编码原理及I帧B帧P帧 前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大的图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不用编码全部图像,只写入与A帧的差别
shared_ptr的一些尴尬 shared_ptr在boost库中已经有很多年了,C++11又为其正名,把他引入STL库,放到了std的下面,可见其颇有用武之地;但是shared_ptr是万能的吗?有没有什么样的问题呢?本文并不说明shared_ptr的设计原理,也不是为了说明如何使用,只说一下在使用过程中的几点注意事项。智能指针是万能良药? 智能指针为解决内存泄漏、编写异常安全代码提供了一种解决
mp4文件格式解析 前言 MP4视频文件封装格式是基于QuickTime容器格式定义的,因此参考QuickTime的格式定义对理解MP4文件格式很有帮助。MP4文件格式是一个十分开放的容器,几乎可以用来描述所有的媒体结构,MP4文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,MP4也支持流媒体。MP4目前广泛用于
Linux中状态为D或Z的进程 长期生活在Linux环境中,渐渐地就有一种环保意识油然而生。比如,我们会在登录提示里写上“悟空,我跟你说过叫不要乱扔东西,乱扔东西是不对的。哎呀我话还没说完你怎么把棍子扔掉了?月光宝盒是宝物,乱扔它会污染环境,要是砸到小朋友怎么办?就算砸不到小朋友,砸到花花草草也不好嘛....”;在用户缺省目录里放一个题为“自觉保护环境,请勿堆放垃圾”的空文件,并用chattr + i设置为不可修改;看到垃圾文件
linux下ffmpeg库 ARM交叉编译 一、前言: 因为想用ffmpeg实现录像网络视频流功能,所以需要编译ffmpeg相关库,不过目前对视频方面很多知识还是小白,后续会写一些关于视频方面知识的文章 二、准备工作 1、ffmpeg源码地址:http://ffmpeg.org 作者目前版本是ffmpeg-3.0.2 2、编译器:arm-none-lin
Linux文件操作函数接口 一、系统调用和设备驱动程序 只需用很少的函数就可以对文件和设备进行访问和控制,这些函数称为系统调用,由UNIX和Linux直接提供,它们也是通向操作系统本身的接口。 操作系统的核心部分,即内核,是一组设备驱动程序。它们是一组对系统硬件进行控制的底层接口。二、系统调用函数接口1、size_t write(int fildes,const void *
/proc文件系统 Linux将一切事物都看成文件,硬件设备在文件系统中也有相应的条目。我们使用底层系统调用这样一种特殊方式通过/dev目录中的文件来访问硬件。 控制硬件的软件驱动程序通常可以以某种特定方式配置,或者能够报告相关信息。 用于与设备驱动程序进行通信的工具在过去就已经十分常见,近来年,倾向于提供更一致的方式来访问驱动程序的信息。事实上,这种一致的方式甚至延伸到包括与linu
linux find命令详解 一、find命令格式1、find的一般形式为: find pathname -options [-print -exec -ok ...]2、find命令的参数 pathname:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录 -print:find命令将匹配的文件输出到标准输出 -e
gcc基础 一、简介 GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GN
POSIX简介 POSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。 POSIX标准意在期望获得
C强制类型转换与隐式转换 一、隐式类型转换 如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示: 图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算符两边的运算数为不同类型时的转换,如一个long 型数据