重定向

文件读写重定向freopen函数

守給你的承諾、 提交于 2020-02-01 02:53:30
函数原型: FILE * freopen(const char * _Filename,const char * _Mode,FILE * _File); 其中FILE *是文件指针,参考 C文件 https://blog.csdn.net/nameofcsdn/article/details/103965715 mode是操作类型,最常用的就是"r"和“w”,表示读写。 _File是需要重定向到的文件指针 示例: #include <iostream> #include <string> using namespace std; int main() { freopen("D:\data in.txt","r",stdin); freopen("D:\data out.txt","w",stdout); int a; while(cin>>a){ cout<<a<<" "; } return 0; } 这里的2个重定向,一个是读取文件重定向到stdin,一个是输出文件重定向到stdout, 这样程序就是从文件读取数据,输出到文件,而输入输出的代码和格式,和标准输入输出是一样的。 一般做OJ题目时,如果涉及到大量输入输出,或者为了显示效果需要分开输入和输出内容,采用重定向比较方便。 来源: CSDN 作者: csuzhucong 链接: https://blog.csdn.net

Wireshark学习

我的未来我决定 提交于 2020-01-31 16:59:28
0x1 Wireshark安装和下载 老样子给出Wireshark下载地址 Wireshark官网 ,下载完成后除了选择安装路径外都可以直接下一步默认安装配置。如果嫌下载慢我这还有刚下好的最新版本x64 v3.2.1,给大家带来便利 网盘入口 ,密码: sayb 我这里安装的版本是Wireshark v3.0.6 0x2 Wireshark的安置 想要使用Wireshark首先要知道Wireshark部署位置,要根据当前需要抓包环境的完整网络拓扑图,至少要知道出故障网络的网络拓扑才能有效的进行网络抓包和诊断。根据网络拓扑图才可以找到合理安置Wireshark的位置。 安置Wireshark的方法: 1)确定要抓取并监控的设备发出的流量 2)将安装了Wireshark的主机或笔记本连接到目标主机所在的交换机上(同一局域网) 3)开启交换机的端口监控功能(该功能叫端口镜像或交换式端口分析器[Switched Port Analyzer,SPAN]),把受监控设备发出的流量重定向给Wireshark主机。 按照以上步骤就可以进行抓包了,这是最简单的操作。 Wireshark可以用来监控LAN端口、WAN端口、服务器/路由器端口或接入网络的任何其他设备发出的流量。需要按照下图所示方向配置端口镜像,即可监控到S2服务器所有进出流量,Wireshark也可以安装到S2服务器本身对本机抓包。

golang获取重定向的地址

与世无争的帅哥 提交于 2020-01-31 13:33:05
http模块默认跟随重定向 使用http.Get,当遇到301跳转时,会获取重定向后的内容 res, err := http.Get(url) if err != nil { logrus.Error(err) return nil, err } //这里的状态是200 fmt.println(res.StatusCode) 获取页面重定向的location 为了获取重定向的location,要重新实现一个http.Client,例子如下: baseHost := "https://www.example.com/" client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, } res, err := client.Get(baseHost) if err != nil { return baseHost } if res.StatusCode != 301 { return baseHost } return res.Header.Get("Location") 来源: https://www.cnblogs.com/xiaohunshi/p/12244962.html

初窥Linux 之 数据流重定向

本小妞迷上赌 提交于 2020-01-30 02:36:46
一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息。这些信息默认是打印在屏幕上的。 那么什么时数据流重定向呢?从字面上理解就是改变数据流的流向,使之流向指定的文件或设备。例如,把执行命令所回传的正确信息(标准输出信息)流向一个文件,而将所回传的错误信息(标准错误输出)流向别一个文件,并把这两个文件的信息保存下来,而在屏幕上不出现任何该命令执行所回传的信息。 二、数据流重定向的实现 1、数据流重写向的分类 在Linux中利用shell实现数据流重定向是非常简单的,下面来介绍3种数据流的重定向。 1)标准输入(stdin):代码为0,使用<或者<< 2)标准输出(stdout):代码为1,使用>或者>> 3)标准错误输出(stderr):代码为2,使用2>或者2>> 看到这里,你可能还是很疑惑,那个代码有什么作用,<和<<有什么不同,>和>>又有什么不同? 2、代码的作用 那个代码是为了区分命令中所使用的不同的数据流而设定的,例如,0代码的就是标准输入。注意在默认情况下,>和>>分别表示1>和1>>, 而<和<<分别表示0<和0<<。 3、标准输出数据流重定向详解

Linux - 命令重定向

这一生的挚爱 提交于 2020-01-30 02:29:28
命令重定向, 就是将目前得到的数据转移到指定的地方.分为以下几种: > >> 1> 2> 1>> 2>> < 1. > 与 >> 先看一个简单的例子. 如果执行ll指令, 会在屏幕上显示执行结果: [root@localhost yuechaotian]# pwd /home/yuechaotian [root@localhost yuechaotian]# ll 总用量 52 -r-------- 1 root root 22 9月 4 16:31 adsl帐号.txt -rw-rw-r-- 1 yuechaotian yuechaotian 2 12月 14 10:54 r.log -rw-rw-r-- 1 yuechaotian yuechaotian 0 12月 14 10:20 r.log.r -rw-rw-r-- 1 yuechaotian yuechaotian 24 12月 14 10:20 r.log.w drwx--x--x 3 root root 4096 12月 7 14:52 study drwxrwxrwx 2 yuechaotian yuechaotian 4096 12月 14 10:58 test -rw------- 1 root root 5789 12月 12 20:53 tnsnames.ora -r-------- 1 root root

Google排名优化作弊手法一览

北战南征 提交于 2020-01-30 01:57:25
优化的方式形形色色,一般无外乎按照一定的关键词,通过对网站结构,页面因素和外部链接的优化,使网站得到最佳的搜索引擎排名。但事实上我们发现,有一些网站由于采取了不正确的优化策略,不但未能有效提升网 站的排名,反而使网站排名惨跌甚至遭到搜索引擎删除。在此我们列出被Google明令禁止的属SPAM性质的优化技术供大家借鉴。   一 隐藏文本/隐藏链接   一般指网页专为搜索引擎所设计,但普通访问者无法看到的文本内容或链接。在形形色色的隐藏技术中,最常见的就是把文本或链接文字的字体颜色设置为与背景色相同或十分接近。   隐藏文本内容(Invisable/hidden text)   意欲在不影响网站美观的前提下通过包含大量关键词的网页提高关键词相关性得分,从而达到改善搜索引擎排名的目的。   隐藏链接(Invisable/hidden links)   意欲在不影响网站美观的前提下通过在其它页面添加指向目标优化页的隐形链接,通过提升链接得分而改善搜索引擎排名。   现在大多数搜索引擎都能检测隐藏技术,并视为作弊。因而包含隐含文本的网页面临被搜索引擎降低排名甚至删除列表的惩罚。虽然在Google上不乏使用隐形技术而侥幸逃脱的网站,但多数人还是认为不值得冒这个险。其实通过添加可视文本内容并保证一定的关键词密度可达到相同的优化效果。   二 网页与Google描述不符  

HTTP协议各个参数详解

半世苍凉 提交于 2020-01-30 01:55:55
HTTP消息是由普通ASCII文本组成。消息包括消息头和数据体部分。消息头以行为单位,每行以CRLF(回车和换行)结束,消息头结束后,额外增加一个CRLF,之后内容就是数据体部分了。 http请求: 实例如下: GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0) Accept-Encoding:gzip,deflate username=jinqiao&password=1234 请求方式(RequestMethod): OPTIONS、 GET、 HEAD、POST、PUT、DELETE、TRACE和CONNECT。 GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断

bash中 2>&1 & 的解释

人走茶凉 提交于 2020-01-30 01:52:53
1、首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。 2、输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源。输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本。有时候会看到如 ls >> 1.txt这类的写法,> 和 >> 的区别在于:> 用于新建而>>用于追加。即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt中,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本中的时候。 3、默认输入只有一个(0,STDIN_FILENO),而默认输出有两个(标准输出1 STDOUT_FILENO,标准错误2 STDERR_FILENO)。因此默认情况下,shell输出的错误信息会被输出到2,而普通输出信息会输出到1。但是某些情况下,我们希望在一个终端下看到所有的信息(包括标准输出信息和错误信息),要怎么办呢? 对了,你可以使用我们上面讲到的输出重定向。思路有了,怎么写呢?

Linux 2>&1的意思

我怕爱的太早我们不能终老 提交于 2020-01-30 00:55:15
2>&1的意思是将标准错误(2)也定向到标准输出(1)的输出文件中。 我们来具体了解下:Linux 中三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2。 STDIN就是标准输入,默认从键盘读取信息;STDOUT是标准输出,默认将输出结果输出至终端,也就是显示器之类的东西;STDERR是标准的错误信息,默认也会显示在终端上。由于STDOUT与STDERR都会默认显示在终端上,为了区分二者的信息,就有了编号的0,1,2的定义,用1表示STDOUT,2表示STDERR。 从command>/dev/null说起 其实这条命令是一个缩写版,对于一个重定向命令,肯定是 a > b 这种形式,那么 command > /dev/null 难道是command充当a的角色,/dev/null充当b的角色。这样看起来比较合理,其实一条命令肯定是充当不了a,肯定是command执行产生的输出来充当a,其实就是标准输出stdout。所以 command > /dev/null 相当于执行了 command 1 > /dev/null 。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中。 说说2>&1 通过上面 command > /dev/null 等价于 command 1 > /dev/null ,那么对于 2>