重定向

2024-08-24 01:44
文章标签 重定向

本文主要是介绍重定向,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 重定向原理

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
int main()
{
close(1);
int fd = open("myfile", O_WRONLY|O_CREAT, 00644);
if(fd < 0){
perror("open");
return 1;
}
printf("fd: %d\n", fd);
fflush(stdout);
close(fd);
exit(0);
}

我们发现,本来应该输出到显示器上的内容,输出到了文件 myfile 当中,其中,fd=1。这种现象叫做输出重定向 

为啥会这样呢?

当你把1号关闭,那么新打开的文件的描述符是1了,而不是3了

dup2系统调用 

可以利用dup2来完成重定向

  1 #include <stdio.h>2 #include <sys/types.h>3 #include <sys/stat.h>4 #include <unistd.h>5 #include <fcntl.h>6 int main()7 {8    int fd = open("myfile", O_CREAT | O_WRONLY|O_TRUNC,0666);9    if (fd < 0)10    {11       perror("open");12       return 1;13     }                                                                                                                                                    14     dup2(fd, 1);15     close(fd);16     printf("hello myfile\n");17     return 0;18 }

运行一下,发现没在屏幕上,在文件中

 stdout和stderr的区别

它们都是显示器文件,一个是1号,一个是2号,有什么区别呢?

stdout是标准输出,stderr是标准错误

  1 #include<stdio.h>2 #include<unistd.h>3 4 int main()5 {6     printf("hello stdout\n");7     fprintf(stderr,"hello stderr\n");8     return 0;9 }        

 正常运行

输出重定向

 

假如我们要把常规信息放在一个文件,错误信息放一个文件,怎么做?

 

假如把所有信息都放在一个文件里呢?

 

总的来说,stdout是打印常规信息,stderr是打印错误信息,都是向显示器打印,只是信息不同,和文件描述符不同。当我们要错误信息是就用stderr咯

这篇关于重定向的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101099

相关文章

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

nginx中重定向的实现

《nginx中重定向的实现》本文主要介绍了Nginx中location匹配和rewrite重定向的规则与应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 目录一、location1、 location匹配2、 location匹配的分类2.1 精确匹配2

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说

在struts.xml中,如何配置请求转发和请求重定向!

<span style="font-size:18px;"><span style="white-space:pre"> </span><!--<strong>下面用请求转发action </strong>,<strong>这样过去id不会丢</strong>,如果用重定向的话,id会丢 --><result name="updatePopedom"<span style="color:#ff00

请解释JSP中的九大内置对象及其作用。什么是Java Web中的请求转发和重定向?它们有什么区别?

请解释JSP中的九大内置对象及其作用。 JSP(JavaServer Pages)中的九大内置对象(也称为隐式对象或自动对象)是JSP容器为每个页面提供的Java对象,这些对象在JSP页面被转换成Servlet时自动可用,无需显式声明。这些对象极大地简化了JSP页面的开发,因为它们提供了对Web应用程序中常见功能的直接访问。以下是九大内置对象及其作用的详细解释: request:javax.

iis7 url重写和重定向

注意不管是重写还是redirect重定向,匹配的url都要写成当前网站的url,也就是真是真实可以访问的,如当前网站ip为127.0.0.1,可以写成^127.0.0.1$ (1)url重写(可以实现伪静态) IIS实现反向代理 新建两个站点,端口分别使用 80 和 81,在DNS中新建A记录,指向该计算机(10.4.34.41) 配置过程如下: 1.在Windows Server

iis6 和iis7s上整个网站重定向

重定向作用: 重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置。举例说明:就像我XX公司,之前用的网络域名是“www.bb.com”,但是后来他们申请到了新的域名“www.ff.com”,但是你会发现当你输入之前的地址域名时候,仍然可以用,只不过他跳转到了新域名的地址下了。这也就是重定向后的作用之一。 设置步骤: IIS6下 1、 用两个简单的网站