stderr

php输入输出流

浪尽此生 提交于 2020-02-29 05:12:56
PHP 3.0.13 及以上版本,自 PHP 4.3.0 起支持 php://output 和 php://input ,自 PHP 5.0.0 起支持 php://filter 。 php://stdin php://stdout php://stderr php://output php://input php://filter php://stdin , php://stdout 和 php://stderr 允许访问 PHP 进程相应的输入或者输出流。 php://output 允许向输出缓冲机制写入数据,和 print() 与 echo() 的方式相同。 php://input 允许您读取 POST 的原始数据。 和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。 php://stdin 和 php://input 是只读的,同时, php://stdout , php://stderr 和 php://output 是只写的。 php://filter 是一种设计用来允许过滤器程序在打开时成为流的封装协议。这对于单独具有完整功能的文件函数例如 readfile() , file() 和 file_get_contents() 很有用,否则就没有机会在读取内容之前将过滤器应用于流之上。 php:/

php:// 访问各个输入/输出流

两盒软妹~` 提交于 2020-02-29 05:12:36
相关 php.ini 配置 allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象文件等。 allow_url_include:off 默认关闭,该选项为on便是允许 包含URL 对象文件等 php://stdin, php://stdout 和 php://stderr php://stdin(只读)、php://stdout 和 php://stderr (只写) 允许直接访问 PHP 进程相应的输入或者输出流, 推荐使用常量 STDIN、 STDOUT 和 STDERR 来代替手工打开这些封装器。 应用一: <?php while($line = fopen('php://stdin','r')){ echo fgets($line); } ?> // 结果 D:\phpStudy\WWW\test>php test.php 12345你好 12345你好 应用二:在dos命令行下直接返回STDIN文件指针(文件句柄) <?php echo STDIN; ?> // 结果 D:\phpStudy\WWW\test>php test.php Resource id #1 应用三: <?php echo fgets(STDIN); ?> //STDIN可以拿到在dos下输入的内容

python中调用cmd

送分小仙女□ 提交于 2020-02-27 18:59:27
1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。 os.system("ls") 2. 使用Popen模块产生新的process 现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函数有一个缺陷,就是它是一个阻塞的方法。如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法,但是也不能获得执行的返回值了。 Popen原型是: 1 subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=Fal 参数bufsize:指定缓冲。我到现在还不清楚这个参数的具体含义,望各个大牛指点。 参数executable用于指定可执行程序。一般情况下我们通过args参数来设置所要运行的程序

【Python】 子进程创建与使用subprocess

余生长醉 提交于 2020-02-27 17:16:09
subprocess *****本文参考了Vamei大神的http://www.cnblogs.com/vamei/archive/2012/09/23/2698014.html    运用subprocess包可以在运行python的进程下进一步开启一个子进程,创建子进程要注意     1. 父进程是否暂停     2.创建出的子进程返回了什么     3.执行出错,即返回的code不是0的时候应该如何处理   subprocess包提供了三个开启子进程的方法,subprocess.call() , subprocess.check_call() , subprocess.check_output(),给三者传递命令字符串作为参数。可以用(['ping','www.baidu.com','-c','3'])这种列表的形式,同时也可以是("ping www.baidu.com -c 3") 这种形式。在开启子进程的时候,可以加上shell=True的参数来让python开启一个shell,通过shell来解释获得的命令。 一般在windows下运行的程序最好都把shell=True加上,这样才能顺利地执行dos命令,但是linux下似乎不加也没啥关系。因为linux下未指明用shell执行的话会调用/bin/sh来执行,问题不大,但是dos下系统不会默认用cmd.exe来执行命令

Stderr and stdout for powershell with Invoke-Expression has no output or errors

回眸只為那壹抹淺笑 提交于 2020-02-27 09:19:28
问题 I am trying to get stdout and stderr from running a java process, and saw what seemed like an easy, cool way to do it, but it did not work: $command = "java -jar secretserver-jconsole.jar -s 123456 Password" Invoke-Expression $command -OutVariable output -ErrorVariable errors Write-Host "stdout: $output" Write-Host "stderr: $errors" Nothing displays with $output or $errors . I am using now: $output = cmd /c $command This does get me some stdout , but it is not ideal as I want $error message.

subprocess模块

纵饮孤独 提交于 2020-02-26 04:54:58
原始地址 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn* subprocess模块中的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数。执行指定的命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。 subprocess.call() 执行指定的命令,返回命令执行状态,其功能类似于os.system(cmd)。 subprocess.check_call() Python 2.5中新增的函数。 执行指定的命令,如果执行成功则返回状态码,否则抛出异常。其功能等价于subprocess.run(..., check=True)。 subprocess.check_output() Python 2.7中新增的的函数。执行指定的命令,如果执行状态码为0则返回命令执行结果,否则抛出异常。 subprocess.getoutput(cmd) 接收字符串格式的命令,执行命令并返回执行结果,其功能类似于os.popen(cmd).read()和commands.getoutput(cmd)。 subprocess

重定向和管道

风格不统一 提交于 2020-02-26 02:52:44
重定向和管道 目录 1.标准输入输出 2.重定向 3.管道 4.重定向到多个目标 这里先说下与重定向和管道密切相关的一个内容,那就是标准输入输出。 1.标准输入和输出 linux中给出了三种有关设备: 标准输入:stdin ,由0表示,默认接受来自键盘的输入 标准输出:stdout,由1表示,默认输出到终端窗口 标准错误:stderr,由2表示,默认输出到终端窗口 stdout就是输出正确的信息,stderr就是输出的错误提示信息。 重定向和管道就是为了重定向这些输入和输出的。 2.重定向 重定向有多种形式,可以重定向输出到文件,可以重定向输出到下个命令,可以重定向输入到命令来被使用。 1)重定输出向到文件 > :把stdout重定向到文件,文件内容会被覆盖 >> :把stdout重定向到文件,文件内容不会被覆盖,而是在原有基础上追加内容 2> :把stderr重定向到文件,进行覆盖。 2>> :把stderr重定向到文件,进行追加。 &> or >& or 2>&1 :把stdout和stderr作为同一个数据流重定向到文件 &>> :把stdout和stderr就是进行重定向追加了 (程序命令;程序命令;...) :配合上述格式,可以合并多个程序命令的stdout和stderr来覆盖或追加 为了防止误操作来把文件给覆盖掉,造成数据丢失,可以通过set 命令来禁止和允许 >

Shell输入/输出重定向

放肆的年华 提交于 2020-02-25 12:37:13
输出重定向 重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示 command1 >file1 上面这个命令执行command1然后将输出的内容存入file1。 注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。 实例 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users) who >users 执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。 你可以使用 cat 命令查看文件内容 cat users h tty7 2017-08-10 11:48 (:0) 输入重定向 和输出重定向一样,Unix 命令也可以从文件获取输入,语法为 command1 <file1 这样,本来需要从键盘获取输入的命令会转移到文件读取内容 注意:输出重定向是大于号(>),输入重定向是小于号(<) 实例 接着以上实例,我们需要统计 users 文件的行数,执行以下命令 $ wc -l users 1 users wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出:-l 统计行数 也可以将输入重定向到 users 文件 $ wc -l <users 1 注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会

Differentiate between error and standard terminal log with ffmpeg - nodejs

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-21 10:27:34
问题 I'm using ffmpeg in node js. Both the standard terminal output and the error seems to be sent to stdout, so I don't know how to differentiate between error and success... Here's my code: var convertToMp3 = function(filePath) { var ffmpeg = child_process.spawn('ffmpeg',['-i', filePath, '-y', 'output.mp3']); var err = ''; ffmpeg.stderr .on('data', function(c) { err += c; }) .on('end', function() { console.log('stderr:', err); }); var d = ''; ffmpeg.stdout .on('data', function(c){d +=c;}) .on(

Python+unittest+HTMLTestRunner进行接口自动化,以html格式展示结果报告

爱⌒轻易说出口 提交于 2020-02-18 19:37:25
HTMLTestRunner下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html. 把 HTMLTestRunner.py放置当前的项目文件夹下。 下载的 HTMLTestRunner.py 是针对 python2 写的,所以针对 python3 需要适当更改其内容: 1.   问题一: No module named StringIO   原因: python 3 中 没有 StringIO 这个模块。这里我们需要使用io 这个模块来代替。   解决方法:     第 94行引入的名称要改,从 import StringIO 改成import io。     相应的, 539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer = io.BytesIO()   2.   问题二: AttributeError: 'dict' object has no attribute 'has_key'   原因: python 3 字典类型的object 已经不支持 has_key函数,我们需要使用in 来进行遍历。   解决方法:     定位到 642行,if not rmap.has_key(cls): 需要换成 if not cls in rmap: