003
15.05.2006, 13:33 Uhr
J-jayz-Z
Perl Crack ala Carte (Operator)
|
Es gibt für alle Standardstreams eine Konstante. In deinem Fall STDOUT_FILENO und STDERR_FILENO. Diese musst du dann mit
C++: |
close(STDOUT_FILENO);
|
schießen. Nun öffnest du sie wieder mit:
C++: |
open("foooooo.txt", O_WRONLY|O_CREAT|O_APPEND);
|
Das O_WRONLY heißt, das sie nur zum schreiben geöffnet werden soll, O_CREAT heißt, das die Datei angelegt werden soll, wenn es sie noch nicht gibt und O_APPEND bedeutet, das es die ausgabe anhängen soll, wenn die datei schon existiert. Jede Ausgabe, die du jetzt mit printf() machst, landet nu in der Datei. Einbinden musst du fcntl.h
EDIT: Ich hatte gerade ein Gespräch mit mike im IRC, freopen() wäre daauch möglich, was man lieber macht ist ansichtssache *g*
C++: |
freopen("fooooooo.txt", "a+", stdout);
|
Hier musst du stdio.h includieren, wirst du aber wohl eh schon haben -- perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"' Dieser Post wurde am 15.05.2006 um 13:58 Uhr von J-jayz-Z editiert. |