C external execution - trap stdout + stderr

Discussion in 'C Programming' started by ChokSheak Lau, Sep 16, 2004.

  1. Hi,

    using popen() doesn't seem to give me any way to capture
    the stderr of the child process.

    does anyone know whether there is any way to capture these:
    1. stdout
    2. stderr
    3. exitcode

    and return to the calling C program after execution?
    you can assume a Linux or Unix like system.

    any response or insight would be appreciated. Thanks.

    chok
    ChokSheak Lau, Sep 16, 2004
    #1
    1. Advertising

  2. ChokSheak Lau

    Ben Pfaff Guest

    "ChokSheak Lau" <> writes:

    > using popen() doesn't seem to give me any way to capture
    > the stderr of the child process.


    Your question is outside the domain of comp.lang.c, which discusses
    only the standard C programming language, including the standard C
    library. This is a remarkably narrow topic compared to what many
    people expect.

    For your convenience, the list below contains topics that are not
    on-topic for comp.lang.c, and suggests newsgroups for you to explore
    if you have questions about these topics. Please do observe proper
    netiquette before posting to any of these newsgroups. In particular,
    you should read the group's charter and FAQ, if any (FAQs are
    available from www.faqs.org and other sources). If those fail to
    answer your question then you should browse through at least two weeks
    of recent articles to make sure that your question has not already
    been answered.

    * OS-specific questions, such as how to clear the screen,
    access the network, list the files in a directory, or read
    "piped" output from a subprocess. These questions should be
    directed to OS-specific newsgroups, such as
    comp.os.ms-windows.programmer.misc, comp.unix.programmer, or
    comp.os.linux.development.apps.

    * Compiler-specific questions, such as installation issues and
    locations of header files. Ask about these in
    compiler-specific newsgroups, such as gnu.gcc.help or
    comp.os.ms-windows.programmer.misc. Questions about writing
    compilers are appropriate in comp.compilers.

    * Processor-specific questions, such as questions about
    assembly and machine code. x86 questions are appropriate in
    comp.lang.asm.x86, embedded system processor questions may
    be appropriate in comp.arch.embedded.

    * ABI-specific questions, such as how to interface assembly
    code to C. These questions are both processor- and
    OS-specific and should typically be asked in OS-specific
    newsgroups.

    * Algorithms, except questions about C implementations of
    algorithms. "How do I implement algorithm X in C?" is not a
    question about a C implementation of an algorithm, it is a
    request for source code. Newsgroups comp.programming and
    comp.theory may be appropriate.

    * Making C interoperate with other languages. C has no
    facilities for such interoperation. These questions should
    be directed to system- or compiler-specific newsgroups. C++
    has features for interoperating with C, so consider
    comp.lang.c++ for such questions.

    * The C standard, as opposed to standard C. Questions about
    the C standard are best asked in comp.std.c.

    * C++. Please do not post or cross-post questions about C++
    to comp.lang.c. Ask C++ questions in C++ newsgroups, such
    as comp.lang.c++ or comp.lang.c++.moderated.

    * Test posts. Please test in a newsgroup meant for testing,
    such as alt.test.

    news.groups.questions is a good place to ask about the appropriate
    newsgroup for a given topic.

    --
    Ben Pfaff
    email:
    web: http://benpfaff.org
    Ben Pfaff, Sep 16, 2004
    #2
    1. Advertising

  3. ChokSheak Lau

    SM Ryan Guest

    "ChokSheak Lau" <> wrote:
    # Hi,
    #
    # using popen() doesn't seem to give me any way to capture
    # the stderr of the child process.
    #
    # does anyone know whether there is any way to capture these:
    # 1. stdout
    # 2. stderr

    To do anything more elaborate with these, you'll probably end up learning
    how to use pipe(), exec...(), and fork().

    # 3. exitcode

    pclose() returns this.

    --
    SM Ryan http://www.rawbw.com/~wyrmwif/
    Quit killing people. That's high profile.
    SM Ryan, Sep 16, 2004
    #3
  4. SM Ryan <> writes:
    > "ChokSheak Lau" <> wrote:
    > # Hi,
    > #
    > # using popen() doesn't seem to give me any way to capture
    > # the stderr of the child process.
    > #
    > # does anyone know whether there is any way to capture these:
    > # 1. stdout
    > # 2. stderr
    >
    > To do anything more elaborate with these, you'll probably end up learning
    > how to use pipe(), exec...(), and fork().
    >
    > # 3. exitcode
    >
    > pclose() returns this.


    Please use the conventional "> " prefix for quoted text.
    Please use the standard "-- " signature delimiter.

    I'm curious -- why do you persist in using your non-standard
    formatting when you've been told repeatedly that it causes real
    problems?

    popen(), pipe(), exec...(), fork(), and pclose() are all non-standard
    functions, not defined by the C standard. comp.unix.programmer is a
    good place to discuss them. comp.lang.c is not.

    --
    Keith Thompson (The_Other_Keith) <http://www.ghoti.net/~kst>
    San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
    We must do something. This is something. Therefore, we must do this.
    Keith Thompson, Sep 16, 2004
    #4
  5. ChokSheak Lau

    CBFalconer Guest

    Keith Thompson wrote:
    > SM Ryan <> writes:
    >

    .... snip ...
    >>
    >> # 3. exitcode
    >>
    >> pclose() returns this.

    >
    > Please use the conventional "> " prefix for quoted text.
    > Please use the standard "-- " signature delimiter.
    >
    > I'm curious -- why do you persist in using your non-standard
    > formatting when you've been told repeatedly that it causes real
    > problems?


    He apparently doesn't care what troubles he causes for others.
    The recommended solution is PLONKing.

    --
    "This is a wonderful answer. It's off-topic, it's incorrect,
    and it doesn't answer the question." -- Richard Heathfield

    "I support the Red Sox and any team that beats the Yankees"
    CBFalconer, Sep 16, 2004
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jon Landenburer

    redirecting stderr and stdout

    Jon Landenburer, May 12, 2004, in forum: Perl
    Replies:
    1
    Views:
    11,204
    Joe Smith
    May 13, 2004
  2. ladygrinningsoul

    Reading stdout and stderr separately

    ladygrinningsoul, Nov 18, 2004, in forum: Perl
    Replies:
    3
    Views:
    1,035
    Alexey A. Kiritchun
    Apr 25, 2005
  3. VisionSet
    Replies:
    6
    Views:
    9,626
    Sudsy
    Sep 20, 2003
  4. Guest
    Replies:
    3
    Views:
    1,178
    Guest
    Jan 11, 2004
  5. Murali
    Replies:
    2
    Views:
    310
    Thomas Jollans
    Jul 2, 2007
Loading...

Share This Page