Offene fd's und deren Type ermitteln
-
Tach Wissende in diesem aus der Mode gekommenen Seitenarm der Milchstraße!
Ich mochte alle offenen fd's in einem child-Prozess und deren Type ermitteln um alle nicht benötigten zu schliessen.Jedoch finde ich kein passendes define für NFILE(systemwide), MAXFILE(user) und struct stat gibt nicht direkt an ob's nun ein socket( und welcher: UNIX,TCP.. ) oder ein simples file oder was. Ich hab folgendes probiert:
#define MAXFILE 1024 struct stat st; int i = 0; for( i = 0; i < MAXFILE; i ++) { if(i == [well known fd]) continue; if(fstat(i,&st)) continue; /* * get open fd BUT type? */ fprintf(stderr,"fd %d is open\n",i); close(i); }
Hat jemad etwas anderes als 42????
1000000000000 Dank
Karsten
-
tremendae, das geht meiner Meinung nach nicht. Du musst halt immer dafür sorgen, dass du dir alle Handles merkst und anschließend auch wieder schließst. Warum weißt du denn nicht welche sachen du alles offen hast? Das kann bei großen Projekten ganze fatale Folgen haben.