Linux内核学习笔记,常见的linux命令及其翻译

日期:2019-10-04编辑作者:必赢娱乐

  假使 wait() 调用成功,则会回去被收罗子进程的长河ID;假诺被调用进度未有子进程,则调用失败,重返-1

优点:

7、cp 拷贝
cp -r 拷贝文件夹

ffmpeg -i $ID.webm -acodec libmp3lame -ac 1 -ar 16000 $ID.mp3

 

    相信广大初学手提式有线电话机联网开采的心上人都想精晓Http与Socket连接毕竟有哪些差别,希望通过自身的浅显精通能对初学者有所补助。

一、基本概念

1、TCP连接

      手提式有线电电话机能够使用联网作用是因为手提式有线电话机尾部达成了TCP/IP公约,能够使手提式有线电话机终端通过有线互联网创建TCP连接。TCP合同能够对上层互联网提供接口,使上层网络数据的传导创建在“一点差距也没有”的互联网之上。

      构建起二个TCP连接供给通过“叁次握手”:

      第贰遍握手:客商端发送syn包(syn=j)到服务器,并步入SYN_SEND状态,等待服务器确认;

      第三遍握手:服务器收到syn包,必需认可客商的SYN(ack=j+1),同期本身也发送贰个SYN包(syn=k),即SYN+ACK包,此时服务器步向SYN_RECV状态;

      第三回握手:客商端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完结,客商端和服务器步入ESTABLISHED状态,达成叁回握手。

      握手进程中传送的包里不带有数据,一次握手落成后,顾客端与服务器才正式开班传送数据。理想状态下,TCP连接一旦制造,在通讯双方中的任何一方主动关闭连 接之前,TCP 连接都将被直接维系下去。断开连接时服务器和顾客端均可以主动发起断开TCP连接的诉求,断开进程须要经过“五遍握手”(进程就不细写 了,便是服务器和客商端交互,最后分明断开)

2、HTTP连接

      HTTP公约即超文本传送左券(Hypertext Transfer Protocol ),是Web联网的功底,也是手提式有线电话机联网常用的情商之一,HTTP左券是确立在TCP合同之上的一种采纳。

      HTTP连接最令人瞩指标风味是客户端发送的历次央求都急需服务器回送响应,在呼吁停止后,会积极性释放连接。从身无寸铁连接到关闭连接的进度称为“一遍连续”。

      1)在HTTP 1.0中,客商端的历次须求都务求树立三回独自的接连,在管理完本次央求后,就自动释放连接。

      2)在HTTP 1.1中则足以在三次一而再中管理多少个须求,并且八个央浼能够重叠进行,无需等待二个央求甘休后再发送下一个呼吁。

      由于HTTP在每一遍供给甘休后都会积极释放连接,由此HTTP连接是一种“短连接”,要保全顾客端程序的在线状态,必要不断地向服务器发起连接乞求。平时的 做法是即时无需得到任何数据,客商端也保证每隔一段固定的时光向服务器发送一次“保持三番五次”的央浼,服务器在吸收接纳该诉求后对顾客端实行恢复生机,表明知道客商端“在线”。若服务器长日子无法收到客商端的伸手,则以为顾客端“下线”,若客商端长期无从接受服务器的复苏,则认为网络已经断开。

3、SOCKET原理

3.1套接字(socket)概念

      套接字(socket)是通讯的根本,是永葆TCP/IP合同的互连网通讯的基本操作单元。它是互连网通讯进程中端点的虚幻意味,包含进行网络通讯必得的三种音信:连接使用的合计,本地主机的IP地址,本地进程的说道端口,远地主机的IP地址,远地经过的商业事务端口。

      应用层通过传输层进行多少通讯时,TCP会碰着同一时候为多少个应用程序进度提供并发服务的主题材料。多个TCP连接或多少个应用程序进度大概须要通过同叁个 TCP公约端口传输数据。为了分歧差别的应用程序进度和连接,大多Computer操作系统为应用程序与TCP/IP合同相互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自差别应用程序进程或网络连接的通信,达成数量传输的现身服务。

3.2 建立socket连接

      创建Socket连接最少要求一对套接字,个中一个运作于顾客端,称为ClientSocket ,另一个周转于服务器端,称为ServerSocket 。

      套接字之间的再而三进度分成七个步骤:服务器监听,顾客端央浼,连接确认。

      服务器监听:服务器端套接字并不固定具体的顾客端套接字,而是处于等候连接的处境,实时监察互连网状态,等待客户端的连天供给。

      顾客端央求:指顾客端的套接字提议连接央求,要连接的靶子是劳动器端的套接字。为此,顾客端的套接字必需首先描述它要连接的服务器的套接字,指出服务器端套接字的地方和端口号,然后就向服务器端套接字建议连接央浼。

      连接确认:当服务器端套接字监听到或然说接收到客商端套接字的连年要求时,就响应顾客端套接字的伸手,营造八个新的线程,把服务器端套接字的叙说发给顾客端,一旦顾客端确认了此描述,双方就正式组建连接。而服务器端套接字继续高居监听状态,继续接收其余顾客端套接字的连天诉求。

4、SOCKET连接与TCP连接

      创立Socket连接时,能够钦命使用的传输层公约,Socket能够协理区别的传输层左券(TCP或UDP),当使用TCP协议进行连接时,该Socket连接便是一个TCP连接。

5、Socket连接与HTTP连接

      由于经常状态下Socket连接正是TCP连接,因而Socket连接一旦成立,通讯双方就可以伊始相互发送数据内容,直到双方连日来断开。但在其实网络使用 中,客商端到服务器之间的通讯往往需求穿越几个中等节点,譬如路由器、网关、防火墙等,超越二分一防火墙暗许会关闭长日子处在非活跃状态的连日而导 致 Socket 连接断连,由此供给经过轮询告诉互连网,该连接处于活跃状态。

      而HTTP连接使用的是“要求—响应”的点子,不独有在呼吁时索要先创造连接,并且必要顾客端向服务器发出央浼后,服务器端技艺还原数据。

      比相当多动静下,要求服务器端主动向客商端推送数据,保持客商端与服务器数据的实时与一齐。此时若双方建设构造的是Socket连接,服务器就足以一向将数据传送给 顾客端;若两个创建的是HTTP连接,则服务器必要等到顾客端发送一次呼吁后技巧将数据传回给顾客端,因而,客户端定期向服务器端发送连接央求,不只好够保持在线,同临时间也是在“询问”服务器是不是有新的数额,要是有就将数据传给客户端。

 

二、相互关系

      首先,勘误一下笔者以前一贯误解的定义,笔者向来感到Http和Tcp是三种区别的,可是地位对等的情商,就算知情TCP是传输层,而http是应用层明天读书了下,知道了 http是要依附TCP连接基础上的,简单来说,TCP就是但是创立连接,不涉及别的我们必要央求的实在多少,轻巧的传输。http是用来收发数据,即事实上利用上来的。

      第一:从传输层,先说下TCP连接,大家要和服务端连接TCP连接,必要经过二回一而再,包蕴:央求,确认,创设连接。即轶事中的“叁遍握手球组织议”。

      第叁遍:C发送四个恳求连接的位码SYN和贰个随意发生的队列号给Seq,然后S收到了那么些数据。

      第叁回:S收到了那个央求连接的位码,啊呀,有人向本身发出央浼了么,那小编要不要承受他的诉求,得完结确认一下,于是,发送了叁个认同码 ACN(seq+1),和SYN,Seq给C,然后C收到了,那几个是第贰回一连。

      第叁回:C收到了认同的码和从前发送的SYN一比较,偶哟,对上了么,于是她又发送了贰个ACN(SEQ+1)给S,S收到今后就规定创设连接,至此,TCP连接创设实现。

      简单就是:乞请,确认,连接。

 

      第二:从事实上的数码选用来说httP

      在前段时间客户端和应用服务器创建TCP连接之后,就须要用http左券来传送数据了,HTTP公约轻易的话,还是央浼,确认,连接。

      总体正是C发送四个HTTP伏乞给S,S收到了那个http诉求,然后重返给Chttp响应,然后C的中间件也许说浏览器把那么些多少渲染成为了网页,呈今后客户前边。

      第一:发送多个http须求给S,这几个乞求包蕴诉求头和央浼内容:

request header:

      包括了,1.呼吁的措施是POST/GET,央浼的UPAJEROL,http公约版本2.伸手的多少,和编码格局3是还是不是有cookie和cooies,是还是不是缓存等。

      post和get乞求形式的区分是,get把央求内容放在U库罗德L前边,可是U凯雷德L长度有限制。而post是以表单的地形,切合要输入密码之类的,因为不在U奥迪Q7L中呈现,所以相比较安全。

request body:

即乞请的内容.

      第二:S收到了http伏乞,然后依据央浼头,重回http响应。

response header:包罗了1.cookies只怕sessions2.状态吧3.内容大小等

response body:

      即响应的剧情,富含,JS什么的。

      第三,C收到了以往,就由浏览器完毕一多元的渲染,包括施行JS脚本等。

      那正是自己所通晓的webTCP,HTTP基础知识,待续。。。。。

  

      TCP是底层通信契约,定义的是数额传输和延续格局的正规
      HTTP是应用层协议,定义的是传输数据的从头到尾的经过的正统
      HTTP左券中的数据是运用TCP公约传输的,所以扶助HTTP也就决然扶助TCP      

      HTTP协理的是www服务 
      而TCP/IP是协议 
      它是Internet国际互联互连网的底子。TCP/IP是网络中选用的基本的通讯协议。 
      TCP/IP实际上是一组合同,它总结广大个各个效能的商议,如:远程登入、文件传输和电子邮件等,而TCP合同和IP左券是保障数据完整传输的多个大旨的最首要合同。平常说TCP/IP是Internet左券族,而不单单是TCP和IP。

  1 #include <sys/types.h> 
  2 #include <sys/wait.h>
  3 #include <unistd.h>
  4 #include <stdio.h>
  5 #include <stdlib.h>
  6
  7 void main(){
  8     pid_t fpid,rpid;                          // fpid为fork()的返回值,rpid为waitpid()的返回值
  9     fpid = fork();
 10     if(fpid < 0){
 11         printf("error on forking");
 12     }
 13     else if(fpid == 0){                       // 子进程中 fork() 返回值为0
 14         printf("this is a child process,pid is %dn",getpid());
 15         sleep(10);                            // 睡眠10s,10s 后子进程退出
 16         exit(0);
 17     }
 18     do{                                  // 父进程中,fork()返回新创建子进程的 PID
 19         rpid = waitpid(fpid,NULL,WNOHANG);    // 等待 PID = fpid 的进程(即子进程)退出,设置了WNOHANG选项,表明当没有发现已退出的子进程时不用等待直接返回,返回值为0;
 20         if(rpid == 0){                        // rpid = 0,说明没有发现已退出的子进程
 21             printf("No child exitedn");
 22             sleep(1);
 23         }
 24     }while(rpid == 0);
 25     if(fpid == rpid)                         // 成功收集了退出的子进程,返回值为被收集子进程的PID
 26         printf("successfully get child process %dn",rpid);
 27     else
 28         printf("error!n");
 29 }     

1.2 成立设备对象

HRESULT WINAPI DirectSoundCreate8(In_opt LPCGUID pcGuidDevice, Outptr LPDIRECTSOUND8 *必赢娱乐app下载,ppDS8, Pre_null LPUNKNOWN pUnkOuter);

调用DirectSoundCreate8函数,大家得以创立二个配备对象,通过传播多个枚举设备时取得的GUID,函数会返给大家多个IDirectSound8接口代表设备对象:

IDirectSound8* directSound8;
if (DirectSoundCreate8(guid, &directSound8, NULL) != DS_OK) {
    std::wcout << L"[error] DirectSoundCreate8 call error!";
    return TRUE;    //  if error, skip this device
}

20、sudo -s 切换成管理员帐号

输出是mp3:  -acodec libmp3lame

#include <sys/types.h>        // 提供类型 pid_t 的定义
#include <sys/wait.h>

pid_t wait(int *status);

2. 运维结果

此番我们用GUI分界面来展现实例运营的结果(出于方便思念,今后作者会用调节台来展现示例),为严防顾客误操作改变呈现的数目本人将许多控件都disable了:

必赢娱乐app下载 1

全部代码见链接。

25、cal 查看日历
cal -y 2020 输出二零二零年的日历

-acodec: 使用codec编解码

必赢娱乐app下载 2

此间我们说说设备操作那三只。

18、which 查看命令地点

-ac: channel 设置通道3, 默以为1

 

1.4 设备能力

HRESULT IDirectSound8::GetCaps(LPDSCAPS pDSCaps)

不等的点子播放设备具有分化的技能,DirectSound允许大家查询设备的力量:

  • 是或不是因此Microsoft认证。
  • 知不知援助最小最大采样率之间的全体采样率。
  • 当未有DirectSound驱动时模拟驱动。
  • 程序缓冲区格式(14人、8位)。
  • 次第缓冲区声道支持(单声道、立体声即多声道)。
  • 不精准的多少(有些声卡不支持):
    • 缓冲区(静态缓冲区、流缓冲区、3D缓冲区)最大数、空闲数。
    • 声卡上的总内部存款和储蓄器数量、空闲内部存款和储蓄器数量、最大空闲块大小,

咱俩传给GetCaps二个DSCAPS结构体地址,然后系统就帮大家填充相应的数码,调用GetCaps前须求将DSCAPS结构体的dwSize设置为DSCAPS的深浅:

DSCAPS deviceCapability = { sizeof(deviceCapability) };
if (directSound8->GetCaps(&deviceCapability) != DS_OK) {
    std::wcout << L"[error] GetCaps call error!";
    return TRUE;
}

24、reboot shutdown 关机
init 0 关机
init 3 切换来指令情势
init 5 切换来分界面格局
init 6 重启

-y: 覆盖输出文件

  参数 status 保存着子进度退出时的片段情状(包罗task_struct、thread_info及内核栈等)它是一个对准 int 类型的指针;即便不在意子进度的了断状态值,只想把那几个活死人进程消灭掉(实际上,大好些个时候都是那般做的),则可以将那几个参数设为 NULL,即:

1.1 枚举

HRESULT WINAPI DirectSoundEnumerateW(In LPDSENUMCALLBACKW pDSEnumCallback, In_opt LPVOID pContext);
typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID);

大家通过DirectSoundEnumerateW那些函数来枚举,该函数需求传入三个回调函数(原型见上),当枚举到三个器材时该回调会被调用。一旦我们想继续枚举,需求在这一个回调用中回到TRUE来告诉系统,不然重回FALSE。另一个参数pContext同意客商传入额外的参数,传入回调函数的末段三个实参便是其一pContext。枚举时,DirectSound会将默许也认作一个独门的设施来相比,由此暗中认可设备会被再一次枚举一次。当设备被当做暗中认可设备枚举时,它的GUID和设备描述字符串都为空,必要小心管理,这里作者一贯跳过了该次枚举:

if (DirectSoundEnumerateW(enumerateCallback, nullptr) != DS_OK) {
    ...
}

BOOL CALLBACK DirectSoundBasic::enumerateCallback(LPGUID guid,
                                              LPCWSTR deviceDescription,
                                              LPCWSTR deviceDriverModule,
                                              LPVOID context)
{
    Q_UNUSED(context);

    //  if primary device, skip it
    if (guid == nullptr)        return TRUE;

    ...
}

27、df -h 查看磁盘空间

ffmpeg是Linux中改变音频摄像文件的常用工具。

pid = wait(NULL);        // 不管子进程的结束状态,直接杀死进程

1.5 播放器配置

HRESULT IDirectSound8::GetSpeakerConfig(LPDWORD pdwSpeakerConfig)
HRESULT IDirectSound8::SetSpeakerConfig(LPDWORD pdwSpeakerConfig)

播放器配置只好是以下之一:

  • DSSPEAKER_5POINT1_SURROUNDDSSPEAKER_5POINT1_BACK: 家庭影院配置,5个围绕扬声器,1个低音炮。
  • DSSPEAKER_DIRECTOUT:直接播放。
  • DSSPEAKER_HEADPHONE:头戴式动铁耳机。
  • DSSPEAKER_MONO:单声道扬声器。
  • DSSPEAKER_QUAD:4声道播放器。
  • DSSPEAKER_STEREO:立体声播放器。
  • DSSPEAKER_SURROUND:环绕播放器。
  • DSSPEAKER_7POINT1_WIDEDSSPEAKER_7POINT1_SURROUND:家庭影院配置,7个围绕扬声器,1个低音炮。

就算MSDN文书档案未有写清楚,可是经过查以上宏定义我们开掘它们是按大小顺序定义的,由此不容许由此O凯雷德|来含有七种恐怕,例子中一旦调用出错间接回到TRUE表示大家后续枚举设备并三番五次查询那么些设备技巧:

DWORD deviceSpeakerConfiguration;
if (directSound8->GetSpeakerConfig(&deviceSpeakerConfiguration) != DS_OK) {
    std::wcout << L"[error] GetSpeakerConfig call error!";
    return TRUE;
}

22、exit 退出

-vn: 不做摄像记录

结果如下:

缺点:

4、pwd 呈现当前路线

ffmpeg -i input.wav output.flac

  WNOHANG;若无任何已经终结了的子进度,则立即赶回,不等待;

DirectSound是DirectX组件之一,提供了对音频设备的抓获和广播能力,同不时间它也是独一多少个扶助Xp系统的点子本领之一。 DirectSound首要有以下特征:

26、date 查看时间日期
date 2018年3月24日 星期六 15:54:28
date "+%F%T" 2018-06-0621:14:20
date -d "-1day" 查看一天前
date -d "+3month" 查看八个月后
date -d "+2year" 查看七年后

输出是ogg: -acodec libvorbis

  接下去用一段代码来演示一下 wait() 的用法:

  • 不得不播放wav音频文件。

Linux内核学习笔记,常见的linux命令及其翻译。16、find 查找文件
find ./ -name test.txt 查找当前目录下所盛名称叫test.txt的文本

wav to ac3:

本文由必赢娱乐app下载发布于必赢娱乐,转载请注明出处:Linux内核学习笔记,常见的linux命令及其翻译

关键词:

Linux中如何布署sudo顾客,达成双主模型的nginx的高

IDEA切换项目时,若是前多少个类型处于调节和测量试验和平运动转意况,8080端口将被侵占,管理如下: Linux中的su...

详细>>

修改Windows暗许远程端口号,部分网页文字颜色很

1、定位注册表,[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWdsrdpwdTdstcp],左侧修改PortNumber的值,选用十进制,将...

详细>>

8装置战败的绕坑办法,进度命令

难点:在wsus content文件夹下误删除文件,要求重新下载文件 化解措施: 打开cmd cd C:Program FilesUpdate ServicesTools .wsusut...

详细>>

应用firewall处理防火墙,创制属于别的Session的历

 创立其余Session(User)的经过需求得到相应Session的Token作为CreateProcessAsUser的参数来运营进程。  Windows 下安装drozer(W...

详细>>