标准输入输出

标准输入输出重定向

£可爱£侵袭症+ 提交于 2020-01-30 00:47:16
程序会在运行中输出日志,并是通过java的日志类进行输出的。而如果关掉SSH运行程序,就会丢失这些信息。直观的解决办法是将输出到控制台的日志重定向到文件中,于是我将命令改为:sh auto.sh > console.txt &。不过事实并没像我想的那样,console.txt虽然被创建了,而日志并没有写在其中。后来请教Robert Chen,他让我用sh auto.sh >console.txt 2>&1 & 命令试一下,我输入了这个隐晦的命令之后,原本输出到控制台的日志内容终于被重定向到console.txt了。 下面来详细分析一下这条命令: sh auto.sh 运行shell脚本 >console.txt 将标准输出重定向到console.txt文件中 其实操作系统有三个常用的流: 0:标准输入流 stdin 1:标准输出流 stdout 2:标准错误流 stderr 一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。 java的日志类默认是输出到system.err中,所以要想将日志内容重定向到console.txt,需要将stderr重定向到console.txt. 将stderr重定向到console.txt的命令是 2 < console.txt。

进程间通信二:管道技术之输入输出重定向

。_饼干妹妹 提交于 2020-01-26 06:10:23
转载自: http://blog.csdn.net/morewindows/article/details/7390350 本篇将介绍 输入输出的重定向问题, 先来看一个小小的实例,设有一个程序,该程序的输入输出为标准输入输出即从键盘上输入,输出到屏幕。现在要重定向输入法输出,使程序从文件中读取数据,处理后输出到文件。程序代码如下(称此程序为示例程序): [cpp] view plain copy #include <stdio.h> int main() { int n; while (scanf( "%d" , &n) != EOF) //标准输入时,可按ctrl+z来输入EOF { n *= 2; printf( "%d\n" , n); } } 试给出几种不同的实现方法,另外如果没有程序代码,只有可执行文件,又应该如何做了? 实现方法一使用C语言的freopen()函数 函数功能:重定向控制台的输入输出 函数原型: FILE * freopen ( const char * path , const char * mode , FILE * stream ); 函数说明: 第一个参数为文件指针(也可以用来指向标准输入输出)。 第二个参数为打开方式, "w" 表示 写, "r" 表示 读, "a" 表示 追加。其它设置可以参考 MSDN 。 第三个参数为 FILE 类型的指针

linux中输入输出和重定向问题

依然范特西╮ 提交于 2020-01-20 20:28:30
输入输出解释    当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件。但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输入,缺省是键盘,也可以是文件或者其他命令的输出) 1:输出文件-标准输出(它的命令是输出,缺省是屏幕,也可以是文件) 2:错误输出文件-标准输出(它的命令是错误的输出,缺省是屏幕,也可以是文件)( 或许会有疑问,为什么会定义错误输出,因为很多人喜欢把错误单独输出,或者在处理大数据文件时,可能产生很多的错误,所以定义了此命令 ) 文件重定向 在执行命令的时候,可以指定命令的输入,输出和错误,要实现这个, 就必须使用文件重定向。 在对标准错误进行重定向时,必须使用文件描述符,但是对于标准输入和输出来说,则不是必须的。 下面是几种写法的案列: command > filename    把把标准输出重定向到一个新文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中 command 2 > filename 把标准错误重定向到一个文件中 command 2 >> filename

C/C++ 标准输入输出重定向

倾然丶 夕夏残阳落幕 提交于 2020-01-13 20:21:19
转载自:http://www.cnblogs.com/hjslovewcl/archive/2011/01/10/2314356.html 这个对经常在OJ上做题的童鞋们很有用。OJ基本都是用标准输入输出(USACO除外)。但如果你在调试的时候也都是从控制台输入,那就太浪费宝贵的时间了。我们可以重定向标准输入,调试的时候从文件读,提交时从标准输入读。 在C语言中,方法比较简单。使用函数freopen(): freopen("data.in","r",stdin); freopen("data.out","w",stdout); 这样就把标准输入重定向到了data.in文件,标准输出重定向到了data.out文件。 这两句代码之后,scanf函数就会从data.in文件里读,而printf函数就会输出到data.out文件里了。 C++中,对流重定向有两个重载函数: streambuf* rdbuf () const; streambuf* rdbuf (streambuf *) 就相当于get/set方法。 代码示例: 1 #include <iostream> 2 #include <string> 3 #include <fstream> 4 5 using namespace std; 6 7 int main(){ 8 string str; 9 /

Linux 输入输出(I/O)重定向

落爺英雄遲暮 提交于 2020-01-11 15:58:56
目录 1、概念 Linux 文件描述符 2、输出重定向 格式 示例 注意 3、输入重定向 格式 示例 4、自定义输入输出设备 解释 示例 最后说两句 1、概念 在解释什么是重定向之前,先来说说什么是文件描述符 Linux 文件描述符 文件描述符可以理解为 Linux 系统为文件分配的一个数字,范围是 0-3 ,用户也可以自定义文件描述符,但是自定文件描述符不在这里的讨论范围 文件描述符(file descriptor) 名称 类型 文件描述符 操作 标准输入 standard input 0 <,<< 标准输出 standard output 1 >,>> 标准错误输出 standard error output 2 2>,2>> 文件描述符的存储位置位于 /proc/self/fd ,文件描述符是通过一系列软链接指向的默认输出设备,这里我们的默认设备就是模拟终端 模拟终端的文件可以使用命令 tty 来查看 [divent@bash]$ ls -al /proc/self/fd total 0 lrwx------. 1 divent divent 64 Aug 15 14:09 0 -> /dev/pts/0 lrwx------. 1 divent divent 64 Aug 15 14:09 1 -> /dev/pts/0 lrwx------. 1 divent

linux之 输入输出重定向及管道命令符

假装没事ソ 提交于 2019-12-23 15:51:07
输入输出重定向 介绍 输入重定向就是将文件的信息导入到命令行中,而输出重定向则是之指把原本要输出到屏幕的数据 导入指定文件中。   1标准输入重定向(STDIN,文件描述符为 0):默认从键盘输入,也可从其他文件或命令中输入。    2标准输出重定向(STDOUT,文件描述符为 1):默认输出到屏幕。   3错误输出重定向(STDERR,文件描述符为 2):默认输出到屏幕。            输入重定向中用到的符号及其作用 符号 作用 命令 < 文件 将文件作为命令的标准输入 命令 << 分界符 从标准输入中读入,直到遇见分界符才停止 命令 < 文件 1 > 文件 2 将文件 1 作为命令的标准输入并将标准输出到文件 2 输出重定向中用到的符号及其作用 符号 作用 命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据) 命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据) 命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面) 命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面) 命令 >> 文件 2>&1 或命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) 注意 :对于重定向中的标准输出模式,可以省略文件描述符 1 不写,而错误输出模式的文件描述符 2是必须要写的 管道命令符 介绍

标准输入输出

别说谁变了你拦得住时间么 提交于 2019-12-18 09:04:44
标准输入: package system; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * java中的System类中的字段:in、out * * 它们代表了系统标准的输入和输出设备。 默认的输入设备是键盘。输出设备是显示器。 System.in的类型是InputStream * System.out的类型是PrintStream OutputStream的子类是FilterOutputStream。 * * @author 半步疯子 * * 接受键盘输入的三种方法 * * 键盘输入数据: * 1.main方法的args接收参数 java HelloWorld.java hello world java * 2.Scanner(JDK5之后的) * Scanner input = new Scanner(System.in); * String s = input.nextLine(); * int x = input.nextInt(); */ public class SystemInDemo { public static void main(String[] args) throws IOException { //

C++ 标准输入输出函数

北城以北 提交于 2019-12-15 14:26:22
标准输入函数:cin cin >> elementType ; C++采用流式输入法,将所有的输入看作流入; cin 函数无需标识符来指定特定的数据类型,同时为了兼容C语言的 scanf 函数,导致 cin 函数的输入效率较低,为了提高效率可以使用以下语句解除C++标准输入函数与C标准输入函数的绑定。但是一旦使用此语句,程序中不可以同时使用 cin 与 scan f函数,否则会发生未知错误。 ios :: sync_with_stdio ( false ) ; cin 函数使用较为简单,不做过多阐述。 标准输出函数:cout cout << element << endl ; cout << "data" << endl ; cout << "data" << element << endl ; 同时 cout 为了兼容 printf 效率也较低,解决方法同 cin ; cout标准化输出 # include <iomanip> 控制符 功能 left 设置左对齐 right 设置右对齐 setprecision( n ) 设置浮点数的有效数字位数 fixed 1.将精度设置转向小数点位数,2. 强制显示小数点 6 位(缺省精度) showpoint 强制使用0补全(有效数字位为 6 位) setw( n ) 设置位宽 # include <iostream> # include

1.打印语句

匿名 (未验证) 提交于 2019-12-03 00:26:01
#include<stdio.h>//标准输入输出头文件 #include<stdlib.h>//system函数的头文件 //程序的入口main函数 int main() { printf("hello world!\n"); //打印信息到控制台 printf("111111111\n"); return 0; //调用系统功能,暂停 system("pause"); } //程序结束 文章来源: 1.打印语句

c++重定向输入输出

匿名 (未验证) 提交于 2019-12-03 00:21:02
所谓重定向输出,就是可以把原本只是输出在控制台的字符,输出到你指定的路径文件中。(输入类似,就是从指定的文件中读取,而不是读取在控制台中的输入。)重定向函数可以在任何时候开启、关闭。 函数名:freopen 标准声明:FILE *freopen( const char *path, const char *mode, FILE *stream ); 所在文件: <stdio.h> 参数说明: path: 文件名,用于存储输入输出的自定义文件名。 mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。 stream: 一个文件,通常使用标准流文件。 返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。 功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。 #include <stdio.h> #include <iostream> int main () { int a , b ; freopen ( "D:\\in.txt" , "r" , stdin ); //输入重定向,输入数据将从D盘根目录下的in.txt文件中读取 freopen (