Ruby相当于PHP的fopen()方法

时间:2010-03-13 22:24:21

标签: php ruby

我试图找出Ruby是否具有当前使用的php的fopen()方法,如下所示:

$fd = fopen("php://stdin", "r");

会使用ARGV变量吗?

基本上我打算做的是使用.procmailrc文件转发原始电子邮件消息,我已经在测试php文件中工作,但该项目需要使用Ruby。因此,我不能100%确定使用ARGV变量是否有效,或者我是否需要通过其他方式捕获电子邮件流。

非常感谢任何帮助。谢谢:))

2 个答案:

答案 0 :(得分:2)

ARGV和(标准)输入流是两个不同的东西。 ARGV包含传递给可执行文件的参数,例如someapp a b c,其中a,b和是参数。 stdin是一个文件句柄。您通常有三个standard streams。 stdin是只读的,stdout和stderr是只写的。

在Ruby中,您可以使用预定义常量STDIN,STDOUT和STDERR来访问默认流。还有变量$ stdin,$ stdout,$ stderr,它们使用与STDIN,STDOOUT和STERR相同的值进行初始化,但可以重新分配其他值。

答案 1 :(得分:0)

你可能是指ARGF变量,看看:

Best practices with STDIN in Ruby?