fcoseall() funktioniert nicht.

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:

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;
}
Obwohl keine FDs mehr existieren dürften, gibt das Programm folgendes aus:
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
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.
 
Zuletzt bearbeitet:
lukas@cheetah64x2 ~ $ gcc -o main main.c
lukas@cheetah64x2 ~ $ ./main
insgesamt 0
lrwx------ 1 lukas lukas 64 8. Aug 14:43 0 -> /dev/pts/2
lrwx------ 1 lukas lukas 64 8. Aug 14:43 1 -> /dev/pts/2
lrwx------ 1 lukas lukas 64 8. Aug 14:43 2 -> /dev/pts/2
l-wx------ 1 lukas lukas 64 8. Aug 14:43 3 -> /home/lukas/test.out

hmm test.in scheint sich zu schlieszen out bleibt auch bei einem 2ten versuch da... schon mal die manpages durchforstet?
 
man 3 fcloseall schrieb:
The fcloseall() function dissociates all open streams from its underlying file or set of functions. ...
Das würde erklären, warum die FDs offen bleiben...aber warumm dann bei dir einer geschlossen wird, und warum ich in die Files noch schreiben kann(gerade ausprobiert),
ist mir ein Rätsel.
 

Ähnliche Themen

Debian Routing Problem

Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

PulseAudio sound nur bei MPD

verzeichniss suche funktioniert nicht

Akonadi startet nicht mehr

Zurück
Oben