自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 问答 (1)
  • 收藏
  • 关注

原创 图片//////////

2023-03-06 16:48:04 110 1

原创 human model dynamic feature extracting

【代码】human model dynamic feature extracting。

2023-03-04 14:33:46 90

原创 数据库系统 第一部分 背景

数据库:为满足某个组织机构的信息要求而设计的一个逻辑相关数据及其描述的共享集。数据的描述称为系统目录实体是组织中的一个独立的,将要在数据库中体现出来的对象(人,地点,东西,概念或者事件)属性描述我们想要记录的对象的某一方面的特性,联系描述实体之间的关联。数据库管理系统(DBMS)是一个支持用户对数据库进行定义,创建,维护及控制访问...

2022-04-14 21:21:26 1499

原创 计算机网络 Kurose 第三章 3.5 面向连接的运输:TCP

3.5.1 TCP连接TCP连接提供的是全双工服务:如果一台主机上的进程A与另一台主机上的进程B存在一条TCP连接,那么应用层数据就可在从进程B流向进程A的同时,也从进程A流向进程B。TCP连接也总是点对点的。即在单个接收方和单个发送方之间的连接。“三次握手”之后,两个进程之间建立一条TCP连接,就可以相互发送数据了。数据通过套接字之后,TCP将这些数据引导到该连接的发送缓存里,发送缓存时发起三次握手期间设置的缓存之一。TCP可以从缓存数据中取出并放入报文段中的数据数量受限于最大报文段长

2022-04-11 11:01:30 208

原创 计算机网络 Kurose 第三章 3.4 可靠数据传输原理

3.4.1 构造可靠数据传输协议1.经完全可靠信道的可靠数据传输首先,我们考虑最简单的情况,即底层信道时完全可靠的,我们称该协议为rdt1.0,该协议本身是简单的。rdt的发送端只通过rdt_send(data)时间接受来自较高层的数据,产生一个包含该数据的分组。并将分组发送到信道中。在接收端,rdt通过rdt_rcv(packet)时间从底层信道接收一个分组,从分组中取出数据,并将数据上传给较高层。在这个简单的协议中,一个单元数据与一个分组没什么差别。而且,所有分组是从发送方流向接收方

2022-04-10 10:29:30 2599

原创 计算机网络 Kurose 第三章 3.3 无连接运输:UDP

使用UDP的时候,在发送报文段之前,发送发和接收方的运输层实体之间没有握手。正因为如此,UDP被称为是无连接的。UDP相较于TCP的优点:关于发送什么数据以及何时发送的应用层控制更为精细。 无需连接建立 无连接状态 分组首部开销小3.3.1 UDP报文段结构UDP首部只有4个字段,每个字段由两个字节组成,通过端口号可以将应用数据交给运行在目的端系统中的相应进程。长度字段指示了在UDP报文中段中的字节数。接收方使用检验和来检查在该报文段中是否出现了差错。3.3.2 UDP检验和

2022-04-06 17:12:59 1986

原创 计算机网络 Kurose 第三章 运输层 3.1 概述和运输层服务 && 3.2 多路复用和多路分解

3.1 概述和运输层服务3.1.1 运输层和网络层的关系运输层协议只工作在端系统中,在端系统中,运输层协议将来自应用进程的报文移动到网络边缘,反过来也是一样,但对有关这些报文在网络核心如何移动并不做任何规定。3.1.2 因特网运输层概述将主机间交付扩展到进程间交付被称为运输层多路复用与多路分解3.2 多路复用和多路分解在目的主机,运输层从紧邻其下的网络层接收报文段。运输层负责将这些报文段中的数据交付给在主机上运行的适当应用进程。将运输层报文段中的数据交付到正确的套接字的工作称为多

2022-04-06 16:47:10 116

原创 计算机网络 Kurose 第二章 应用层 2.5 P2P文件分发 && 2.6 视频流和内容分发网

2.5 P2P文件分发1.P2P体系结构的扩展性分发时间:所有N个对等方得到该文件的副本所需要的时间客户-服务器体系结构最小分发时间 P2P体系结构最小分发时间表示服务器接入链路的上载速率,表示第i个对等方接入链路的上载速率。表示具有最小下载速率的对等放的下载速率。F表示分发文件的长度。N表示要获得的该文件副本的对等放数量。2.BitTorrentBitTorrent是一种用于文件分发的流行P2P协议。参与一个特定文件分发的所有对等方的集合被称为一个洪流。每个洪流具有一个基础设施节点

2022-03-18 15:50:25 3185

原创 计算机网络 Kurose 第二章 应用层 2.4 DNS:因特网的目录服务

2.4.1 DNS提供的服务识别主机有两种方式,主机名(www.facebook.com)或者IP地址DNS(域名系统,Domain Name System)的主要任务:主机名到IP地址转换的目录服务一个由分层的DNS服务器实现的分布式数据库 一个使得主机能够查询分布式数据库的应用协议除了进行主机名到IP地址的转换之外,DNS还提供了一些重要的服务:主机别名。有着复杂主机名的主机能拥有一个或多个别名 邮件服务器别名。电子邮件应用程序可以调用DNS,对提供的主机名别名进行解析,以获得该主

2022-01-30 10:27:21 4106

原创 计算机网络 Kurose 第二章 应用层 2.2Web和HTTP

2.2.1 HTTP概况Web的应用层协议是超文本传输协议(HypterText Transfer Protocol,HTTP),它是Web的核心,在[RFC 1945]和[RFC 2616]中进行了定义。HTTP由两个程序实现,一个是客户程序,一个是服务器程序Web页面是由对象组成的,一个对象只是一个文件,多数Web页面含有一个HTML基本文件,以及几个引用对象。HTML基本文件通过对象的URL地址引用页面中的其他对象。每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。

2022-01-27 10:21:51 1522

原创 计算机网络 Kurose 第二章 应用层 2.1 应用层协议原理

2.1 应用层协议原理2.1.1网络应用程序体系结构客户服务器体系结构:有一个总打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。例如:Web,FTP,Telnet,电子邮件P2P体系结构:应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。P2P2体系结构不必通过专门的服务器,该体系结构被称为对等放到对等放的。2.1.2 进程通信1.客户和服务器进程在每对通信进程中,我们将发起通信的进程标识为客户,在会话开始时等待联系的进程是服务器。2.进程与计算

2022-01-24 21:51:30 2096

原创 shell脚本实战(第2版)/人民邮电出版社 脚本34 确保最大化压缩文件

Z="compress" gz="gzip" bz="bzip2"Zout="/tmp/bestcompress.$$.Z"gzout="/tmp/bestcompress.$$.gz"bzout="/tmp/bestcompress.$$.bz"skipcompressed=1if [ "$1" = "-a" ];then skipcompressed=0;shiftfiif [ $# -eq 0 ];then echo "Usage:$0 [-a] file or files .

2022-01-22 11:51:52 350

原创 shell脚本实战(第2版)/人民邮电出版社 脚本33 处理压缩文件

Z="compress"; unZ="uncompress"; Zlist=""gz="gzip" ungz="ungzip"; gzlist=""bz="bzip2" unbz="bunzip2" bzlist=""for arg do if [ -f "$arg" ];then case "$arg" in *.Z) $unZ "$arg" arg="$(echo $arg | sed 's/\.Z$//')" Zlist="$ZList \"$arg\"" .

2022-01-22 10:24:00 503

原创 shell脚本实战(第2版)/人民邮电出版社 脚本32 改进grep

context=0esc=""boldon="${esc}[1m"boldoff="${esc}[22m"sedscript="/tmp/cgrep.sed.$$"tempout="/tmp/cgrep.$$"function showmatches{ matches=0 echo "s/$pattern/${boldon}$pattern${boldoff}/g">$sedscript for lineno in $(grep -n "$pattern" $1 | cut -.

2022-01-21 18:39:11 169

原创 shell脚本实战(第2版)/人民邮电出版社 脚本27 显示带有行号的文件

for filename in "$@"do linecount=1 while IFS="\n" read line do echo "${linecount}:$line" linecount="$(($linecount+1))" done < $filenamedoneexit 0运行结果

2022-01-19 15:12:17 153

原创 shell脚本实战(第2版)/人民邮电出版社 脚本24 温度转换

if [ $# -eq 0 ];then cat << EOF >&2Usage: $0 temperature[F|C|K]where the suffix: F indicates input is in Fahrenheit (default) C indicates input is in Celsius K indicates input is in KelvinEOFexit 1fiunit="$(echo $1|sed -e 's/[-[:di.

2022-01-19 13:07:48 715

原创 shell脚本实战(第2版)/人民邮电出版社 脚本23 交互式计算器

在调用脚本9的时候,需要将脚本9中的最后一行改为return 0scale=2show_help(){cat << EOF In addition to standard math functions,calc also supports: a % b remainder of a/b a ^ b exponential:a rasied to the power s(x) sine of x,x in radians c(x) cosine

2022-01-19 12:19:12 381

原创 shell脚本实战(第2版)/人民邮电出版社 脚本21 显示不同时区的时间

zonedir="/usr/share/zoneinfo/posix"if [ $# -eq 0 ];then timezone="Shanghai" mixedzone="Asia"elif [ "$1" = "list" ];then (echo "All known time zones and regions defined on this system:" cd $zonedir find -L * -type f -print | xargs .

2022-01-18 20:50:56 169

原创 shell脚本实战(第2版)/人民邮电出版社 脚本18 显示目录内容

readablesize(){ if [ $1 -ge 1048576 ];then echo "$(. scriptbc -p 2 $1/1048576)GB" elif [ $1 -ge 1024 ];then echo "$(. scriptbc -p 2 $1/1024)GB" else echo "${1}kB" fi}if [ $# -gt 1 ];then echo "Usage: $0 [dirname]" >&2 exit 1.

2022-01-07 18:03:50 313

原创 shell脚本实战(第2版)/人民邮电出版社 脚本17 记录文件删除操作

removelog="remove.log"if [ -z "$removelog" ];then touch remove.logfiif [ "$1" = "-s" ];then shiftelse echo "$(date):${USER}:$@">>$removelogfirm "$@"exit 0运行结果

2022-01-07 14:24:55 231

原创 shell脚本实战(第2版)/人民邮电出版社 脚本15 删除文件时做备份

archivedir="$HOME/bin/test-dir"realrm="$(which rm)"copy="$(which cp) -R"if [ $# -eq 0 ];then exec $realrmfiflags=""while getopts "dfiprrvw" optdo case $opt in f) exec $realrm "$@" ;; *) flags="$flags -$opt" ;; esacdoneshift $(($OPTIND-1)).

2022-01-06 20:31:39 225

原创 shell脚本实战(第2版)/人民邮电出版社 脚本14 格式化过长的行

IFS=":"count=0; nonex=0for directory in $PATH;do if [ -d "$directory" ];then for file in "$directory"/*;do if [ -x "$file" ];then count="$(($count+1))" else nonex="$(($nonex+1))" fi done fidoneecho "$count commands,and $nonex e.

2022-01-06 18:32:30 227

原创 shell脚本实战(第2版)/人民邮电出版社 脚本12 构建shell叫脚本库

首先,需要将用到的函数全部放入一个文件中,此文件命名为(library.sh)initailizeANSI(){ esc="、033" blackf="${esc}[30m"; redf="${esc}[31m";greenf="${esc}[32m";yellowf="${esc}[33m";bluef="${esc}[34m"; purplef="${esc}[35m";cyanf="${esc}[36m";whitef="${esc}[30m"; blackb="${esc}

2022-01-05 21:57:40 606

原创 shell脚本实战(第2版)/人民邮电出版社 脚本11 ANSI颜色序列

initailizeANSI(){ esc="" blackf="${esc}[30m"; redf="${esc}[31m";greenf="${esc}[32m";yellowf="${esc}[33m";bluef="${esc}[34m"; purplef="${esc}[35m";cyanf="${esc}[36m";whitef="${esc}[30m"; blackb="${esc}[40m"; redb="${esc}[41m";greenb="${esc}[42m";.

2022-01-05 21:09:11 521

原创 shell脚本实战(第2版)/人民邮电出版社 脚本9 浮点数计算器

if [ "$1" = "-p" ];then precision=$2 shift 2else precision=2fibc -q <<EOF #1scale=$precision$*quitEOFexit 0

2022-01-05 18:49:47 133

原创 shell脚本实战(第2版)/人民邮电出版社 脚本7 验证日期格式

exceedsDaysMonth(){ case $(echo $1 | tr '[:upper:]' '[:lower:]') in jan*) days=31 ;; feb*) days=28 ;; mar*) days=31 ;; apr*) days=30 ;; may*) days=31 ;; jun*) days=30 ;; jul*) days=31 ;; aug*) days=31 ;; sep*) days=30.

2022-01-05 09:49:25 173

原创 shell脚本实战(第2版)/人民邮电出版社 脚本6 验证浮点数输入

validfloat(){ fvalue=$1 if [ ! -z $(echo $fvalue | sed 's/[^.]//g') ];then decimalpart=$(echo $fvalue | cut -d. -f1) fractionpart=${fvalue#*\.} if [ ! -z $decimalpart ];then if ! . validint.sh "$decimalpart" "" "";then return 1 .

2022-01-04 15:23:46 254

原创 shell脚本实战(第2版)/人民邮电出版社 脚本5 验证整数输入

validint(){ number="$1" min="$2" max="$3" if [ -z $number ];then echo "you didn't input anything" fi if [ "${number%${number#?}}" = "-" ];then #1 testvalue="${number#?}" else testvalue="$number" fi nodigits="$(echo $testvalue | s.

2022-01-04 15:13:25 256

原创 shell脚本实战(第2版)/人民邮电出版社 脚本4 美化多位数字

nicenuber(){ interger=$(echo $1 | cut -d. -f1) decimals=$(echo $1 | cut -d. -f2) if [ "decimals" != $1 ];then result="${DD:= '.'}$decimals" fi thousands=$interger while [ $thousands -gt 999 ];do remainder=$(($thousands % 1.

2021-12-29 21:40:47 349

原创 shell脚本实战(第2版)/人民邮电出版社 脚本3 规范日期格式

monthnumtoname(){ case $1 in 1 ) month="Jan" ;; 2 ) month="Feb" ;; 3 ) month="Mar" ;; 4 ) month="Apr" ;; 5 ) month="May" ;; 6 ) month="Jun" ;; 7 ) month="Jul" ;; 8 ) month="Aug" ;; 9 ) month="Sep" ;; 10 ) month="Oct" ;; .

2021-12-29 19:33:00 375

原创 shell脚本实战(第2版)/人民邮电出版社 脚本2 验证输入:仅限字母和数字

validalphanum(){ validchars="$(echo $1 | sed -e 's/[^[:alnum:]]//g')" #1 if [ "$validchars" = "$1" ];then return 0 else return 1 fi}read -p "Enter input: " input #2if ! validalphanum "$input" ; then echo "your input must consist only l.

2021-12-29 16:31:45 291

原创 shell脚本实战(第2版)/人民邮电出版社 脚本1 在PATH中查找程序

#!/bin/bash#inpathin_path(){ cmd=$1 ourpath=$2 result=1 #1 oldIFS=$IFS IFS=":" #2 for directory in $ourpath do if [ -x $directory/$cmd ]; then #3 result=0 fi done IFS=$oldIFS return $result}checkF.

2021-12-29 16:13:30 633

原创 unix环境编程 第十五章 15.10 POSIX信号量

POSIX信号量有两种形式:命名的和未命名的。它们的差异在于创建和销毁的形式上,但是其他工作一样。未命名的信号量只存在于内存中,并要求能使用信号量的进程必须可以访问内存。这意味着它们只能应用在同一进程中的线程,或者不同进程中已经映射相同内存内容到它们的地址空间中的线程。命名信号量可以通过名字访问,因此可以被任何已知它们名字的进程中的线程使用。我们可以调用sem_open函数来创建一个新的命名信号量或者使用一个现有信号量。#include <semaphore.h>sem_t

2021-12-02 19:39:54 833

原创 unix环境编程 第十五章 15.9 共享存储

共享存储允许两个或者多个进程共享一个 给定的存储区。因为数据不需要在客户进程和服务器进程之间复制。所以这是最快的一种IPC。使用共享存储时要掌握的唯一窍门是在多个进程之间同步访问一个给定的存储区。调用的第一个函数通常是shmget,它获得一个共享存储标识符#include <sys/shm.h>int shmget(key_t key,size_t size,int flag);//成功返回共享存储ID,失败返回-1参数size是该共享存储段的长度,以字节为单位。shmct

2021-12-01 21:14:46 56

原创 unix环境编程 第十五章 15.8信号量

信号量与IPC不同,它是一个计数器,用于为多个进程提供对共享数据对象的访问。为了获得共享资源,进程需要执行下列操作:测试控制该资源的信号量。 若此信号量的值为正,则进程可以使用该资源,在这种情况下,进程会将信号量值减1,表示它使用了一个资源单位。 若此信号量的值为0,则进程进入休眠状态,直至信号量值大于0.当进程不在使用由一个信号量控制的共享资源时,该信号量值增1。如果有进程正在休眠等待此信号量,则唤醒他们。信号量值的增减操作时原子操作。常用的信号量形式被称为二元信号量,它控制单个资源,其

2021-12-01 19:57:19 85

原创 unix环境编程 第十五章 15.7消息队列

消息队列是消息的链接表,存储在内核中,由消息队列标识符标识,简称队列ID。msgget用于创建一个新队列或者打开一个现有的队列。#include <sys/msg.h>int msgget(key_t key,int flag);//成功返回消息队列ID,失败返回-1在创建新的队列的时候,要初始化msqid_ds结构的下列成员:ipc_perm结构按15.6.2节所述进行初始化。该结构中的mode成员按flag中的相应权限位设置。 msg_qnum,msg_lsqid,m

2021-12-01 19:11:13 137

原创 unix环境编程 第十五章 15.6 XSI IPC

15.6.1标识符和键每个内核中的IPC结构(消息队列,信号量或共享存储段)都用一个非负整数的标识符加以引用。当一个IPC结构被创建,然后又被删除的时候,与这种结构相关的标识符连续加1,直至达到一个整型数的最大正值,然后又转回到0.每个IPC对象都与一个键相关联,将这个键作为该对象的外部名。无论何时创建IPC结构,都应指定一个键。这个键的数据类型是基本系统数据类型key_t,通常在头文件中被定义为长整型。这个键由内核编程标识符。这个键由内核变换成为标识符。有多种方法使客户进程和服务器进程在同

2021-11-30 20:17:45 402

原创 unix环境编程 第十五章 15.5FIFO

FIFO有时被命名为管道。通过FIFO,不相关的进程也能交换数据。创建FIFO类似于创建文件#include <sys/stat.h>int mkfifo(const char *path,mode_t mode);int mkfifoat(int fd,const char *path,mode_t mode);//成功返回0,出错返回-1mode参数的规格说明与open函数中的mode的相同。当open一个FIFO时,非阻塞标志会产生下列影响:在一般情况下,制度o

2021-11-29 20:02:21 65

原创 unix环境编程 第十五章 15.3 函数popen和pclose

常见的操作是创建一个连接到另一个进程的管道,然后读其输出或向其输入端发送数据,为此,标准I/O库提供了两个函数popen和函数pclose。#include <stdio.h>FILE *popen(const char *cmdsring,const char *type);//成功返回文件指针,出错返回NULLint pclose(FILE *fp);//成功返回cmdstring的终止状态,失败返回-1函数popen先执行fork,然后调用exec执行cmdstring,

2021-11-29 16:56:40 529

原创 unix系统编程 第十五章 15.2管道

管道是UNIX系统IPC的最古老形式,所有UNIX系统都提供此种通信机制。管道有以下两种局限性:历史上,它们是半双工的(即数据都只在一个方向上面流动)。现在某些系统提供全双工管道。 管道只能在具有公共祖先的两个进程之间使用,通常,一个管道由一个进程创建,在进程调用fork之后,这个管道就能在父进程和子进程之间使用了。我们将会看到FIFO没有第二种局限性,UNIX域套接字没有这两种局限性。管道是通过调用pipe函数创建的。#include <unistd.h>int pip

2021-11-25 21:53:01 645

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除