重定向

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

相关文章

【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、 用两个简单的网站

记一次头疼事故:springSecurity无法重定向到登录页/springSecurity整合layui后,会话丢失,点击选项卡无法定位到登录页。

1、问题概述? 1、springboot工程引入了springSecurity权限框架实现用户登录功能,当刷新浏览器地址栏的时候能够自动的重定向到登录页实现登录。 2、但是项目中使用了layui的选项卡,当会话丢失的时候(或者重启工程后直接访问),选项卡无法回到登录页,而是选项卡中的数据表格报错,具体报错内容如下。 期望:当会话内容丢失,重新展示登录页。 或者 浏览器“控制台”报

ssh结合重定向实现scp拷贝文件的另类用法

我们都习惯了使用scp来拷贝文件,但是在特殊的情况下,比如没有scp命令,可以使用ssh来实现scp的功能 。 首先看下常规scp的用法: scp xx.com:/xxfile . 这句指令把远程的文件cp到本地 我们完全可以用ssh命令结合重定向来实现scp的功能: ssh xxx.com dd if=/dev/shm/install |dd of=install yyy@x

result重定向与全局标签

全局result 全局的Result定义在<package>的<global-results>标签下。当default包下的任何一个Action的返回字符串为error,页面都将返回error.jsp <package name="default" extends="struts-default"><global-results><result name="error">/error.

利用文件重定向提高调试效率(已阅加重点划)

编程得到正确结果前,往往需要多次运行程序,每次运行都需要花费不少的时间从键盘输入数据。每次输入的数据都是相同的时,会给人的心理带来不爽的感觉,并造成时间上的浪费。无论平时练习还是ACM竞赛实战,这些都是可以避免的。方法是,运用重定向。   用下面的形式调用函数freopen()会将标准输入stdin重定向到文件input.txt(这个名字可以自己定义)。 输入输出重定向例: 文件名

unreal engine5.4.3动画重定向

UE5系列文章目录 文章目录 UE5系列文章目录前言 前言 ue5.4和ue3动画重定向之间存在差异,跟ue5.2差别更大一点,总之ue5.4越来越简化动画重定向,不想之前还需要制作RTG文件 这是ue5.3.2的制作动画重定向的界面 这是ue5.4.2的制作动画重定向的界面 这是ue5.3.2的制作动画重定向的界面 这是ue5.4.2的制作动画重定向的界面,不再需要R