2010-03-13 7 views
1

J'essaie de savoir si la méthode Ruby a en équivalent de fopen() de php actuellement utilisé comme ceci:Ruby équivalent de la méthode de fopen() de PHP

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

serait-ce être en utilisant la variable ARGV? Fondamentalement, ce que je prévois de faire est d'envoyer des messages électroniques bruts en utilisant le fichier .procmailrc que j'ai déjà travaillé dans un fichier php de test, mais le projet nécessite l'utilisation de Ruby. Par conséquent, je ne suis pas sûr à 100% si l'utilisation de la variable ARGV fonctionnerait ou si d'une manière ou d'une autre j'ai besoin de capturer le flux d'e-mail par d'autres moyens.

Toute aide serait grandement appréciée. Merci :)

Répondre

2

ARGV et le flux d'entrée (standard) sont deux choses différentes. ARGV contient les paramètres passés à un exécutable, comme someapp a b c où a, b et sont des paramètres. stdin est un descripteur de fichier. Vous avez habituellement trois standard streams. stdin qui est en lecture seule, stdout et stderr qui sont en écriture seule.

Dans Ruby, vous pouvez utiliser les constantes prédéfinies , STDOUT et STDERR pour accéder aux flux par défaut. Il y a aussi les variables $ stdin, $ stdout, $ stderr qui sont initialisées avec les mêmes valeurs que STDIN, STDOOUT et STERR mais qui peuvent être affectées à d'autres valeurs.