D
dpkg
Mitglied
Hi,
Ich bin durch Zufall draufgekommen, das bei meinem System der
fclosall()-befehl nicht richtig funktioniert.
Dieses Programm öffnet 2 dateien, ruft fclosall() und gibt dann die in proc/<pid>/fd eingetragenen Filedeskriptoren aus:
Obwohl keine FDs mehr existieren dürften, gibt das Programm folgendes aus:
Könnt ihr das mal bitte auf euren rechnern ausprobieren und mir sagen, ob das bei euch auch so ist, bzw. mir sagen was ich falsch mache?
THX + MFG
chris
EDIT: die Zeile "l-wx------ 1 chris01 chris01 64 2007-08-08 12:21 1 -> /home/chris01/output" kommt daher, da ich die ausgabe
des Programmes mit ./a.out | output umgeleitet hab, weil ich von xterm nichts kopieren kann.
Ich bin durch Zufall draufgekommen, das bei meinem System der
fclosall()-befehl nicht richtig funktioniert.
Dieses Programm öffnet 2 dateien, ruft fclosall() und gibt dann die in proc/<pid>/fd eingetragenen Filedeskriptoren aus:
Code:
#include <stdio.h>
#include <unistd.h>
int main( void ){
FILE *f1,*f2;
pid_t pid = getpid();
char debug[1024];
snprintf(debug,1024,"ls -l /proc/%d/fd",pid);
f1 = fopen("test.in","r");
f2 = fopen("test.out","w");
fcloseall();
system(debug);
//system(debug);
return 0;
}
Code:
insgesamt 5
lrwx------ 1 chris01 chris01 64 2007-08-08 12:21 0 -> /dev/pts/3
l-wx------ 1 chris01 chris01 64 2007-08-08 12:21 1 -> /home/chris01/output
lrwx------ 1 chris01 chris01 64 2007-08-08 12:21 2 -> /dev/pts/3
lr-x------ 1 chris01 chris01 64 2007-08-08 12:21 3 -> /home/chris01/test.in
l-wx------ 1 chris01 chris01 64 2007-08-08 12:21 4 -> /home/chris01/test.out
THX + MFG
chris
EDIT: die Zeile "l-wx------ 1 chris01 chris01 64 2007-08-08 12:21 1 -> /home/chris01/output" kommt daher, da ich die ausgabe
des Programmes mit ./a.out | output umgeleitet hab, weil ich von xterm nichts kopieren kann.
Zuletzt bearbeitet: