博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日一练(二十二)
阅读量:3948 次
发布时间:2019-05-24

本文共 1715 字,大约阅读时间需要 5 分钟。

文章目录

12.11 less 浏览文件内容

Linux中有时我们要产看一些文本文件,比如系统的配置文件,是以文本格式存储的,阅读配置文件可以更深入了解系统是如何工作的。而且脚本也是以这种格式存储的,less命令就是用来浏览文件内容的:

less filename

less产看文件的时候,支持文件的上下滚动显示(more只能向前翻页)

在这里插入图片描述

在这里插入图片描述

而且less支持在浏览文件的时候进行查找字符串:使用/字符串即可,非常方便!

12.12 type 显示命令的类型

type是一个shell内部命令,使用man type是查不到的。

type会显示命令的类型,使用:type command

在这里插入图片描述

由于type是一个shell内部命令,所以man是查不到的,要通过help来查看帮助文档。bash 有一个内建的帮助工具,可供每一个 shell 内建命令使用。输入“help”,接着是 shell 内部命令名:

在这里插入图片描述

12.13 Linux下进程间通信机制概述

Linux下进程间通信的机制是从UNIX继承而来的,UNIX进程间通信的标准的制定主要有两大主力:

  • AT&T的贝尔实验室:对早期UNIX进程间通信机制进行扩展,形成System V IPC,但是进程间通信限制在单个计算机内
  • BSD:突破单个计算机的进程间通信的限制,形成了基于套接字(socket)的进程间通信,可以用于网络中不同主机的进程间通信

所以Linux下的进程间通信是集百家之长,如下:

早期UNIX传统进程间通信方式:

  • 无名管道(pipe):用于亲缘关系的进程间通信
  • 有名管道(FIFO):允许无亲缘关系进程间通信
  • 信号(signal):信号是在软件层次上对中断机制的模拟,进程收到信号的处理过程和中断请求的处理过程类似

System V IPC:

  • 消息队列(message queue):克服来管道和信号通信方式中信息量有限的缺点,消息队列是消息的链接表
  • 共享内存(share memory):共享内存是最高效的进程间通信方式,使得多个进程可以访问同一块内存空间,但是需要同步机制,比如互斥锁、信号量
  • 信号量集(semaphore set):主要用于同步和互斥,经常于共享内存搭配使用

BSD开发的进程间通信机制:

  • 套接字(socket):可以用于网络中不同主机直接的进程间通信,使用非常广泛

12.14 获取整数个字节

获取0X12345678的各个字节!

有两种实现方法:

  • 利用联合体union和struct来做,和判断大小端的方法类似
  • 移位运算

代码如下:

#include 
union target {
unsigned long int data; struct {
unsigned char a; unsigned char b; unsigned char c; unsigned char d; }byte;};int main(int argc, char* argv[]){
union target t; int i; unsigned char byte; t.data = 0X12345678; printf("target is :0X%lx\n", t.data); printf("Byte is :0X%x 0X%x 0X%x 0X%x\n", t.byte.a, t.byte.b, t.byte.c, t.byte.d); for (i = 0; i < 4; i++) {
byte = (t.data >> i*8) & 0X000000ff; printf("Byte%d is :0X%x\n", i, byte); } return 0;}

在这里插入图片描述

12.15 函数原型、函数定义、函数声明 三者区别

函数原型:指明函数的名字,返回的类型,有几个参数,这几个参数是什么类型,不需要函数体,也不需要形式参数的名字,其中用分号作为原型的结束符

函数定义:必须要有完整的函数体、函数名字、形参的类型和名字

函数声明:只是告诉编译器该函数的存在,不分配空间,直到调用该函数时才分配

转载地址:http://etwzi.baihongyu.com/

你可能感兴趣的文章
FMDB介绍以及在 swift 中的数据库操作
查看>>
iOS运行时机制(附Demo演练)
查看>>
宽字符串输出问题
查看>>
将整数转换为宽字符串
查看>>
在类中定义enum实现整数常量功能
查看>>
suse11通过安装最新内核可以上网的经验
查看>>
SUSE静态配置IP成功上网
查看>>
通过sleep让程序等待外部条件改变
查看>>
通过等待键盘输入让程序等待外部条件改变
查看>>
通过限制循环次数来避免死循环
查看>>
ADO连接字符串
查看>>
字符数组的位置决定程序能否成功执行--不明白
查看>>
拷贝代码时没有仔细检查,导致误修改了函数参数
查看>>
MySQL批量导入数据SQL语句(CSV数据文件格式)
查看>>
ADO连接Oracle
查看>>
遍历Windows系统中所有进程的名字(*.exe)
查看>>
进程看门狗
查看>>
线程看门狗
查看>>
调试代码的宏定义
查看>>
创建、重命名文件
查看>>