digitalmars.D.bugs - [Issue 5190] New: std.stdio should have File.fdopen
- d-bugmail puremagic.com (27/27) Nov 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5190
- d-bugmail puremagic.com (14/14) May 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5190
http://d.puremagic.com/issues/show_bug.cgi?id=5190 Summary: std.stdio should have File.fdopen Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: d-bugzilla autark.se --- As far as I can tell, struct File in std.stdio does not have a direct way to construct a File object from a low-level file descriptor, à la fdopen. I ran into this issue when using fork and pipe to create a pipe between two processes; having started a child process I wanted to parse the child's standard output using high-level File functions, and for that purpose I wanted to create a File object from a file descriptor. After some head-scratching, I was finally able to work around the issue by extern-declaring fdopen and using the sparsely documented File.wrapFile function (which is labelled "unsafe") to construct a File object, but that was inconvenient and obscure. Implementing fdopen in File would make systems programming with Phobos easier. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5190 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich gmail.com 20:34:36 PDT --- fdopen is declared in core\sys\posix\stdio.d It seems there's at least one function which uses it: D:\DMD\dmd2\src\phobos\std\stdio.d:2540: FILE* fp = enforce(fdopen(s, "w+".ptr)); Hope that helps in any way! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 24 2011