05 2019 档案

select模型(二 改进服务端)
摘要:一、 int select(int fds,fd_set *readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);select 监管多个I/O,检测遍历[0,fds)的描述符,select实现的服务器称为并发(非 阅读全文

posted @ 2019-05-31 15:27 wsw_seu 阅读(172) 评论(0) 推荐(0) 编辑

select模型(一 改进客户端)
摘要:一、改程序使用select来改进客户端对标准输入和套接字输入的处理,否则关闭服务器之后循环中的内容都要被gets阻塞。原程序中https://www.cnblogs.com/wsw-seu/p/8413290.html,若服务器端先关闭发送FIN,客户端处于CLOSE WAIT状态,服务端到FIN_ 阅读全文

posted @ 2019-05-30 17:42 wsw_seu 阅读(192) 评论(0) 推荐(0) 编辑

5种IO模型
摘要:一、五种I/O模型: 阻塞I/O,非阻塞I/O,I/O复用模型,信号驱动I/O,异步I/O 前四种属于同步iO,最后一种属于异步IO。因为前四种真正的I/O操作将阻塞进程。异步I/O不导致请求被进程阻塞。由内核完成I/O操作。 1、阻塞IO 2、非阻塞IO 非阻塞IO,recv返回错误-1(EWOU 阅读全文

posted @ 2019-05-30 17:38 wsw_seu 阅读(228) 评论(0) 推荐(0) 编辑

tcpdump详解(转)
摘要:tcpdump是Linux下强大的抓包工具,不仅可以分析数据包流向,还可以对数据包内容进行监听。通过分析数据包流向,可以了解一条连接是如何建立双向连接的。tcpdump允许用户(一般是root)拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。 1 用法及常用参数一览 1 2 3 阅读全文

posted @ 2019-05-17 14:29 wsw_seu 阅读(629) 评论(0) 推荐(0) 编辑

CRC校验(转)
摘要:1. CRC校验原理 假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,既将 阅读全文

posted @ 2019-05-16 15:54 wsw_seu 阅读(877) 评论(0) 推荐(0) 编辑

wait函数与waitpid函数(僵尸进程)
摘要:当子进程退出时,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程。它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。父进程查询子进程的退出状态可以用wait/waitpi 阅读全文

posted @ 2019-05-12 20:53 wsw_seu 阅读(726) 评论(0) 推荐(0) 编辑

UNIX系统编程:文件IO(I)
摘要:1、标准C库中访问文件用的是文件指针FILE *(stdin,stdout,stderr);对于linux系统编程而言,所有对设备或文件的操作都是通过文件描述符进行的 2、当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数),后续对文件的操作只需要通过文件描述符,内核记录有关这个打 阅读全文

posted @ 2019-05-09 15:08 wsw_seu 阅读(180) 评论(0) 推荐(0) 编辑

系统编程错误处理
摘要:在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在<errno.h>头文件中声明如下: extern int errno; 同时提供了两个错误处理函数:perror、strerror。 char * strerror(int errnum); //将错 阅读全文

posted @ 2019-05-08 15:41 wsw_seu 阅读(181) 评论(0) 推荐(0) 编辑

gdb调试入门(下)
摘要:GDB调试主要包括: 1、查看运行时数据 2、程序错误 3、gdb调试逻辑错误 4、gdb调试段错误 5、core文件调试 一、查看运行时数据 1、print 查看变量值 2、ptype 变量: 查看数据类型 3、print array(数组名): 查看数组 4、print *array@len(p 阅读全文

posted @ 2019-05-07 22:28 wsw_seu 阅读(249) 评论(0) 推荐(0) 编辑

linux开发工具之Makefile(下)
摘要:make 常用内嵌函数以及多级目录Makefile 一、函数调用 $(function arguments),利用$号引用函数,下面是Makefile中常用三个函数: 1、$(wildcard PATTERN):wildcard函数 当前目录下匹配模式的文件,例如 src=$(wildcard *. 阅读全文

posted @ 2019-05-07 20:23 wsw_seu 阅读(183) 评论(0) 推荐(0) 编辑

linux开发工具之gcc
摘要:首先gcc编译链接的一个实例如下所示: 接下来看一下gcc的常见选项: gcc的使用示例: 阅读全文

posted @ 2019-05-07 16:08 wsw_seu 阅读(237) 评论(0) 推荐(0) 编辑

shell编程之俄罗斯方块
摘要:按键获取: 向上 ^[[A 向下 ^[[B 向左 ^[[D 向右 ^[[C 其中 ^[为ESC键。 按键获取的具体shell代码如下所示: 俄罗斯方块棋盘绘制: 首先关注几个光标效果: \033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[ 阅读全文

posted @ 2019-05-07 14:49 wsw_seu 阅读(315) 评论(0) 推荐(0) 编辑

shell编程之awk
摘要:awk是一种用于处理数据和生成报告的编程语言 awk可以在命令行中进行一些简单的操作,也可以被写成脚本来处理较大的应用问题 awk与grep、sed结合使用,将使shell编程更加容易 awk工作模式: awk逐行扫描输入(可以是文件与管道),按给定的模式查找出匹配的行,然后对这些执行awk命令指定 阅读全文

posted @ 2019-05-06 22:01 wsw_seu 阅读(159) 评论(0) 推荐(0) 编辑

shell编程之sed
摘要:sed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定的文件名,然后在屏幕上查看输出。流式编辑器sed逐行读取文件内容存储在临时缓冲区,称为“模式空间”, 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。原文件内容 阅读全文

posted @ 2019-05-06 21:50 wsw_seu 阅读(227) 评论(0) 推荐(0) 编辑

shell编程之trap命令
摘要:trap command signal trap捕获信号(软中断),command一般是linux命令 若为' '表示发生陷阱时为空指令,'-'表示发生陷阱时采用缺省指令 signal: HUP(1) 挂起;一般因终端掉线或用户退出而引发 INT(2)中断;一般因按下"Ctrl+C"组合键引发 QU 阅读全文

posted @ 2019-05-06 19:59 wsw_seu 阅读(746) 评论(0) 推荐(0) 编辑

shell编程之字符串操作
摘要:shell中字符串操作主要有以下几种,其中:pattern ,old中可以使用通配符: ${#var} :返回字符串变量var的长度 ${var:m} :返回${var}中从第m+1个字符到最后的部分,其中m的取值从0到${#var}-1 ${var:m:len}:返回${var}中从第m+1个字符 阅读全文

posted @ 2019-05-06 17:26 wsw_seu 阅读(236) 评论(0) 推荐(0) 编辑

shell编程之函数
摘要:与其他编程语言一样,bash 也可以定义函数。一个函数就是一个子程序,用于完成特定的任务,当有重复代码时,或者一个任务只需要少数的修改就能被重复执行时。 函数一般的格式: function func_name { commands } 或者 func_name () { commands } 下面再 阅读全文

posted @ 2019-05-06 16:52 wsw_seu 阅读(132) 评论(0) 推荐(0) 编辑

shell编程之循环语句
摘要:1、语法结构: for var in list #每次循环,一次把列表list中的一个值赋给循环变量 do commands done #循环结束标志 几点说明: 1、列表list可以是命令替换,变量名替换、字符串、文件名列表(可包含通配符) 2、for循环执行的次数取决于列表list中单词的个数 阅读全文

posted @ 2019-05-06 16:26 wsw_seu 阅读(253) 评论(0) 推荐(0) 编辑

shell编程之条件与分支语句
摘要:1、if条件分支语句 if expr1(条件测试) #如果expr1为真,返回0 then commands1 elif expr2 then commands2 .... ... else commands fi #if语句必须以fi终止 下面看一个实例: elif可以有多个,else最多有1个。 阅读全文

posted @ 2019-05-06 14:50 wsw_seu 阅读(259) 评论(0) 推荐(0) 编辑

shell编程之条件测试
摘要:一、条件测试:可根据某个特定条件是否满足,来选择执行相应的任务。bash中允许测试两种类型的条件--命令成功或失败,表达式为真或假。任何一种测试中,都要有退出状态(返回值),退出状态为0表示命令成功或表达式为真,非0表示命令失败或表达式为假(与C语言相反)。状态变量 $? 保存命令退出状态的值 内置 阅读全文

posted @ 2019-05-05 22:51 wsw_seu 阅读(245) 评论(0) 推荐(0) 编辑

shell编程之算术扩展(引号、命令替换、算术扩展)
摘要:1、单引号 、双引号、反引号的区别 单引号:忽略所有特殊字符 双引号:忽略大部分特殊字符($ `等字符除外) 反引号:命令替换(将一个命令的标准输出插入到命令的任何位置) $(): 同样是命令替换 命令替换可以嵌套(如果使用反引号,则内部的反引号必须用反斜杠来转义) :echo `basename 阅读全文

posted @ 2019-05-05 20:55 wsw_seu 阅读(299) 评论(0) 推荐(0) 编辑

shell编程之输入输出
摘要:1、输入 read命令有以下几种常见形式: read var :等待用户输入,从标准输入中读取一行并赋值给变量var read : 标准输入读取一行,并赋值给内置变量REPLY read -a arr :读入一组词,依次赋值给数组arr read -p :表示提示符 read -t:表示超时时间 r 阅读全文

posted @ 2019-05-05 19:50 wsw_seu 阅读(491) 评论(0) 推荐(1) 编辑

shell编程基础
摘要:1、shell脚本是纯文本文件,可以使用任何编辑器编写,以.sh作为后缀。 第一行:#! /bin/bash 指定用那个程序来进行解释 例如: #! /bin/bash echo "hello world!!!" 记得给该文件加上可执行权限。 2、shell中变量:必须以字母或下划线开头,可分为本能 阅读全文

posted @ 2019-05-05 17:22 wsw_seu 阅读(307) 评论(0) 推荐(0) 编辑

linux基本操作之linux登陆
摘要:一 文本登陆方式: 输入用户名与密码;/etc/passwd文件对照(口令文件,保存基本的用户信息);/etc/shadow文件对照(影子文件,保存密码信息);启动相应的shell程序;用户得到 一个虚拟终端,通过shell与系统交互;进入用户家目录。 口令文件格式: root: x : 0 : 0 阅读全文

posted @ 2019-05-05 15:31 wsw_seu 阅读(797) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示