音视频开发学习点点滴滴记录(1)-- ffmpeg下载及环境搭建 音视频开发学习记录今天开始学习音视频开发相关的知识,通过博客的形式与大家共同学习与进步关于音视频编解码的概念知识可以在百度上搜索,介绍的都是非常详细的学习ffmpeg我建议是先在windows平台上学习,然后再去linux上开发学习 介绍ffmpeg下载的方法 下载地址:https://ffmpeg.zeranoe.com/builds/ 我们...
linux 线程 信号量 信号量、同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过是同步的对象不同而已。但是下面介绍的信号量的接口是用于线程的信号量,注意不要跟用于进程间通信的信号量混淆。一、什么是信号量线程的信号量与进程间通信中使用的信号量的概念是一样,它是一种特殊的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值
linux 线程 条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果条件为假,一个线程自动阻塞,并释放等
linux 多线程编程 互斥量 线程 互斥量 一 什么是互斥量互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。二 互斥量函数的使用方法#include int pthread_mutex_init(pthread_mutex_t *mutex, const pthr
linux shell awk命令的简单使用方法 awk命令1 awk是一个强大的文件分析工具 2 使用方法awk '{pattern + action}' {filenames}其中 pattern 表示 AWK 在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。pattern就是要表示的正则表达式,用斜杠括起来。
C++ 派生类的构造函数总结 1 简单的派生类的构造函数的一般形式 为: 派生类构造函数名(总参数表):基类构造函数名(参数表){派生类中新增数据成员初始化语句}2 有子对象的派生类的构造函数的一般形式为: 派生类构造函数名(总参数表):基类构造函数名(参数表),子对象(参数表){派生类中新增数据成员初始化语句}3 多层派生时的构造函数 不要列出每一层派生类的构造函数,只需写出其上一层派生类
linux shell编程 从当前目录下查找指定文件,输出文件位置 #! /bin/bash#从当前目录下找出所有要查询的文件并输出文件位置echo start time=`date`echo -efunction func(){for file in `ls $2`do if [ -L $2"/""$file" ] then continue else if [ -d $2"/""$file" ] then path=$
shell 编程 字符串 函数 # /bin/bash#定义变量类型declare -i sum=100+200+300echo $sum#数组array_name=(v0 v123456 v2 v3)#重新设置指定元素的数值array_name[2]=v22#输出元素的值echo ${array_name[2]}echo ${array_name[*]}echo ${array_name[@]}
linux Ubuntu安装samba服务器 下面以介绍Ubuntu16.04为例介绍安装samba服务器1 首先介绍一下samba有什么用:简短的说,samba是用来window平台与linux平台共享文件的2 Ubuntu安装samba的方法(1) 首先进行源安装sudo apt-get install samba-common samba (2) 安装完成后去Ubuntu上创建一个新用户
linux 线程创建 pthread_create函数 获取线程id 函数原型:#includeint pthread_create(pthread_t*thread,pthread_attr_t *attr,void * (*start_routine)(void *arg), void *arg); 参数 第一个参数为指向线程标识符的指针。 第二个参数用来设置线程属性。 第三个参数是线程运行函数的地址。 最后一个
linux 线程等待与退出 pthread_join pthread_exit 函数 线程等待:函数:pthread_joinextern int pthread_join __P (pthread_t __th, void **__thread_return); 参数:第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待
linux 进程间通信 消息队列 Linux下进程间通信方式:# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访
linux 进程间通信 信号量 这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行
linux 进程间通信 共享内存 一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影
linux C 进程结束 exit与_exit函数 exit与_exit函数都是进程正常退出的函数exit函数格式:#include void exit(int status);_exit函数格式:#include void _exit(int status);相同点:1 这两个函数都是正常退出进程2 不论调用是否成功,都没有返回信息不同点:1 exit函数会对输入输出流进
linux C进程 进程等待wait与waitpid函数 为什么要使用wait或waitpid函数:编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程。1. 孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程变为init进程 。2. 僵尸进程:子进程终止了,父进程尚未回收子进程,子进程残留资源(PCB)存放于内核中,子进程变成僵尸(Zombie)
linux C 进程 创建进程 详解 最近一周复习和整理了一些进程相关的知识,所以结合书本与网上的知识整理了这篇博客 首先介绍一下进程的创建方法,fork与vfork函数fork函数 一个进程调用fork()函数后,系统先给新的进程分配资源,包括代码、数据和分配给进程的资源,然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。需要的头文件:#incl
数据结构 队列入队,出队编程的例子 队列是先入先出的,即先入队的数据先出队下面这个程序具有入队,出队,遍历队列数据的功能#include #include typedef struct{ int* pBase; int front; int rear;}QUEUE;//初始化静态队列,创建能够存储5个数据的静态队列void Init_queue(QUEUE* _pQ){
linux 创建用户useradd与adduser 删除用户userdel 创建删除用户组命令 下面介绍常用的创建创建与删除用户与用户组1 创建用户useradd + 用户名以创建用户test用户为例首先输入useradd test 此命令是添加用户test然后输入passwd test此命令是给test用户设置密码,如果没有设置密码的话此用户是无法登陆的此时已经添加用户成功接下来用 su test 命令登陆test用户