Hi Alan
ok, I see now. > That is check if > > std::fstream fin( "/dev/urandom", std::ios::in ); this is the constructor, there is no return value, which is one of the criticisms made to C++. In this case probably you need to do a small I/O operation after that call and check for the result. Not sure which , because I never use the C++ I/O, I always use the C API, even in C++ programs. the reference is here http://www.cplusplus.com/reference/fstream/fstream/fstream/ -Pedro ----- Original Message ----- From: "Alan W. Irwin" <ir...@beluga.phys.uvic.ca> To: "Pedro Vicente" <pedro.vice...@space-research.org>; "Phil Rosenberg" <p.d.rosenb...@gmail.com>; "PLplot development list" <plplot-devel@lists.sourceforge.net> Sent: Monday, December 19, 2016 7:51 PM Subject: RE: New way to generate wxwidgets debug output > On 2016-12-19 16:33-0500 Pedro Vicente wrote: > >> Hi Alan >> >> >>> The only trouble with the above fix is not every Unix platform has >>> /dev/urandom (although from the above URL most do). >>> >>> So I would like to change the above fix to check for /dev/urandom >>> and use it if it exists, but otherwise fall back to using /dev/random. >>> >>> How do I do that in C++? >> >> >> This is not a C++ (or C) issue. >> This is ideal for cmake to check, the same way it detects for other >> possible system functions/features availability. >> I never did this before, but I think the way it works it is on the cmake >> script >> do a small C or C++ program embedded in the script that includes >> "/dev/urandom" in some way, for example >> >> std::fstream fin( "/dev/urandom", std::ios::in ); >> >> and then check if it compiles and pass the result to cmake >> >>> > /dev/urandom (although from the above URL most do). > > Hi Pedro: > > I agree that is a possible approach, but that would mean > I would need to implement a build-system CMake test, propagate the > relevant CMake variable from that test > to the C++ level as a macro, and introduce a preprocessor directive into > our own C++ > code based on whether that macro is defined or not. And I think my > original proposal is simpler than that. > > I never stated clearly what my proposed approach > would be, but it is no coincidence that it is C like. :-) > > That is check if > > std::fstream fin( "/dev/urandom", std::ios::in ); > > works (probably by just checking the return code of that call, but I > could not find the documentation of what the return code would be > on failure), > > and if that return code indicates a failure, then call > > std::fstream fin( "/dev/random", std::ios::in ); > > instead. But I assume Phil will do (or has done by now) the > equivalent using C++ exception handling. > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and > Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/intel _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel