you can use the function "getrandom" as explained here
http://stackoverflow.com/questions/2572366/how-to-use-dev-random-or-urandom-in-c http://man7.org/linux/man-pages/man2/getrandom.2.html -Pedro ----- Original Message ----- From: "Pedro Vicente" <pedro.vice...@space-research.org> To: "Alan W. Irwin" <ir...@beluga.phys.uvic.ca>; "Phil Rosenberg" <p.d.rosenb...@gmail.com>; "PLplot development list" <plplot-devel@lists.sourceforge.net> Sent: Monday, December 19, 2016 8:40 PM Subject: Re: [Plplot-devel] New way to generate wxwidgets debug output > you could use "open" to try to open the stream as described here > > http://www.cplusplus.com/reference/fstream/fstream/open/ > > I'll do a small test to see > > -Pedro > > > ----- Original Message ----- > From: "Pedro Vicente" <pedro.vice...@space-research.org> > To: "Alan W. Irwin" <ir...@beluga.phys.uvic.ca>; "Phil Rosenberg" > <p.d.rosenb...@gmail.com>; "PLplot development list" > <plplot-devel@lists.sourceforge.net> > Sent: Monday, December 19, 2016 8:30 PM > Subject: Re: [Plplot-devel] New way to generate wxwidgets debug output > > >> 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 >> > > > ------------------------------------------------------------------------------ > 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 > ------------------------------------------------------------------------------ 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