filedescriptor von einem fstream?
-
Topic sagt es ja schon. Ich moechte wissen, wie ich den filedescriptor von einem fstream bekomme.
-
gar nicht.
Du kannst hier ggf. mit einem eigenen std::stream_buf aushelfen, der auf den von dir gewünschten Dateideskriptoren arbeitet.
-
Mh ok. Ich wollte flock() benutzen, um Dateien zu locken. Dafuer brauchte ich den filedescriptor. Gibts da ein c++ Gegenstueck?
-
Schau mal: http://www.josuttis.de/cppcode/fdstream.html
-
Du kannst fstream Object aus Deskriptor konstruieren:
#include <fstream> #include <fcntl.h> #include <sys/file.h> #include <string> using namespace std; int main () { int fd = open ("test1", O_RDONLY); cout<<" Desc:"<<fd<<endl; flock (fd, LOCK_EX); ifstream ss(fd); string s; while (ss>>s) { cout<<s; } }
-
itman schrieb:
Du kannst fstream Object aus Deskriptor konstruieren:
Nein, kann man nicht.
-
Shade Of Mine schrieb:
itman schrieb:
Du kannst fstream Object aus Deskriptor konstruieren:
Nein, kann man nicht.
Warum denn nicht?
Doch, mindestens mit GCC unter Linux. Nach oben ist ein arbeitendes Beispell. du kannst es pruefen
-
itman schrieb:
Warum denn nicht?
Doch, mindestens mit GCC unter Linux. Nach oben ist ein arbeitendes Beispell. du kannst es pruefen
Nur weil es der GCC kann, ist es noch lange nicht Standard.
-
und fcntl ist kein Standard auch!