Solved

FILE* and streams

Posted on 2004-08-30
5
234 Views
Last Modified: 2010-04-01
Hello all,
   I'm making use of a static library that makes use of stdout and stderr as input to different functions that require a FILE* as a parameter.  I would like to make use of these functions, but do not want to create a temporary, ( or permanent for that matter ), file on the drive to make use of the functions.  What can I do to pass a stream into this function so that I can read the output from the function?

Thanks much.
0
Comment
Question by:edc
  • 2
  • 2
5 Comments
 
LVL 22

Expert Comment

by:grg99
ID: 11936100
You could use a pipe.  Depending on the OS, it could be as simple as opening a file named "\\.\\pipe\\MyPipe".

0
 
LVL 1

Author Comment

by:edc
ID: 11936143
Hi grg99.  The OS is windows, (most likely 2K, XP and 2003, but could also be 9x).  Would the pipe work on the Windows OSs?

Thanks much.
0
 
LVL 1

Author Comment

by:edc
ID: 11936149
Also, if so, where can I find documentation on how to use it?

Thanks again.
0
 
LVL 16

Expert Comment

by:nonubik
ID: 11940884
Of course you can use pipes on Windows. Take a look here http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/pipes.asp
0
 
LVL 22

Accepted Solution

by:
grg99 earned 125 total points
ID: 11941289
Note that pipes are kinda shaky-- the semantics of multiple pipe readers are very fuzzy.  Also Windows 95/98 are only half-assed-- they can be pipe clients but not servers.  Yet another intentional cripling, thanks MSoft.

I'd try using a temporary file, much easier and works on all OS's.

0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now