system("PAUSE") for linux?

Discussion in 'C Programming' started by Paminu, Oct 14, 2005.

  1. Paminu

    Paminu Guest

    Is there something like system("PAUSE") for linux?
    Paminu, Oct 14, 2005
    #1
    1. Advertising

  2. In article <dip4tt$l0d$-c.dk>, Paminu <> wrote:
    :Is there something like system("PAUSE") for linux?

    As far as this newsgroup is concerned, the exact replacement is

    system("PAUSE");

    That's because as far as this newsgroup is concerned, PAUSE has
    an unidentified system-dependant function. If the functionality of
    PAUSE were to be described, then a Unix or Linux newsgroup would be
    able to tell you what the nearest Linux equivilent would be.


    On some systems, PAUSE means "suspend CPU activity on the system until
    there is an interrupt". On others, it means "suspend the active process
    for 1 second". On others, it means "flush any pending output and
    wait until a key is pressed and then continue (without waiting for
    a newline.) On others, the newline is required. On others, it means
    "print the error message associated with not finding a named program
    or command". On others it means "look for an executable program
    named PAUSE in the current directory and execute it, with whatever
    consequences that has." Others yet it would mean "look for an
    executable program named PAUSE in the currently defined list of
    program locations, and execute it, with whatever condequences that has."

    Possibly the most common meaning, though, is "Play a recording
    of your voice telling the dog to get his paws off of the furniture."
    If that's the one you were looking for, see section 93.11 of the
    Linux FAQ, which discusses the various ways of getting high-fidelity
    playback of His Master's Voice on various kinds of sound cards
    and Midi Synthesizers.
    --
    All is vanity. -- Ecclesiastes
    Walter Roberson, Oct 14, 2005
    #2
    1. Advertising

  3. Paminu <> writes:
    > Is there something like system("PAUSE") for linux?


    We don't know. Try a Linux or Unix group. comp.unix.programmer is a
    likely place to ask about this -- but first explain what
    system("PAUSE") means.

    But first, try reading the documentation that comes with the system.

    --
    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, Oct 14, 2005
    #3
  4. Paminu

    Simon Biber Guest

    Paminu wrote:
    > Is there something like system("PAUSE") for linux?


    This is off-topic for comp.lang.c, you should have posted to
    comp.unix.programmer. However, I have written a clone of the MS-DOS
    pause command for Linux, and I can give you a link to it here.

    http://members.optushome.com.au/sbiber/pause-1.0.tar.gz

    It should work on other Unix-like systems too. Extract it, change to the
    directory pause-1.0, and type
    make
    to build, and you can type
    sudo make install
    to copy the executable to /usr/local/bin

    --
    Simon.
    Simon Biber, Oct 14, 2005
    #4
  5. In article <dip4tt$l0d$-c.dk>, Paminu <> wrote:
    >
    >
    > Is there something like system("PAUSE") for linux?


    Linux programs generally don't do that. It makes it hard
    to use your program in a pipe context, plus one usually
    runs command line programs...from the command line...so by
    default there's no danger of the window just disappearing
    as soon as the program is done.

    It's usually left to the user to pipe your program's output
    through "less" or "more" if they want to pause between
    screenfuls of data.
    Anonymous 7843, Oct 14, 2005
    #5
  6. Paminu

    Paminu Guest

    Simon Biber wrote:

    > Paminu wrote:
    >> Is there something like system("PAUSE") for linux?

    >
    > This is off-topic for comp.lang.c, you should have posted to
    > comp.unix.programmer. However, I have written a clone of the MS-DOS
    > pause command for Linux, and I can give you a link to it here.
    >
    > http://members.optushome.com.au/sbiber/pause-1.0.tar.gz
    >
    > It should work on other Unix-like systems too. Extract it, change to the
    > directory pause-1.0, and type
    > make
    > to build, and you can type
    > sudo make install
    > to copy the executable to /usr/local/bin
    >



    Ok done that but how do I use it in my source.c file??
    Paminu, Oct 15, 2005
    #6
  7. Paminu wrote:
    >
    > Is there something like system("PAUSE") for linux?


    Assuming that system("PAUSE") causes a Windows box to display "press any
    key to continue", and then waits for any keystroke, the answer is "no".
    (Check the FAQ. I'm sure someone can give the exact section number.)

    However, if you are willing to go for "press enter to continue" instead,
    then you can simply printf() that message, and use a while loop waiting
    for getchar() to return '\n'.

    --
    +-------------------------+--------------------+-----------------------------+
    | Kenneth J. Brody | www.hvcomputer.com | |
    | kenbrody/at\spamcop.net | www.fptech.com | #include <std_disclaimer.h> |
    +-------------------------+--------------------+-----------------------------+
    Don't e-mail me at: <mailto:>
    Kenneth Brody, Oct 15, 2005
    #7
  8. Paminu

    Simon Biber Guest

    Paminu wrote:
    > Simon Biber wrote:
    >>Paminu wrote:
    >>>Is there something like system("PAUSE") for linux?

    >>
    >>This is off-topic for comp.lang.c, you should have posted to
    >>comp.unix.programmer. However, I have written a clone of the MS-DOS
    >>pause command for Linux, and I can give you a link to it here.
    >>
    >>http://members.optushome.com.au/sbiber/pause-1.0.tar.gz
    >>
    >>It should work on other Unix-like systems too. Extract it, change to the
    >>directory pause-1.0, and type
    >> make
    >>to build, and you can type
    >> sudo make install
    >>to copy the executable to /usr/local/bin

    >
    > Ok done that but how do I use it in my source.c file??


    If it's installed to a location that is in your PATH, then you need only
    write system("pause"); in your source code. Note that Linux is
    case-sensitive. It won't work if you use uppercase "PAUSE" in your
    program but the program is called lowercase "pause".

    You might want to create a directory under your home directory to store
    your own commands, such as ~/bin
    mkdir ~/bin
    cp pause ~/bin

    Then, add a line to your ~/.profile file to make sure that this
    directory is always added to your path:
    export PATH=$PATH:$HOME/bin

    Log out and back in, and check that the directory was added to your
    path. You can check your path list by typing
    echo $PATH

    --
    Simon.
    Simon Biber, Oct 15, 2005
    #8
  9. Paminu

    Roger Leigh Guest

    Paminu <> writes:

    > Is there something like system("PAUSE") for linux?


    You don't want to do that.

    While it's certainly possible, you
    1) Don't want to use system(3) just to pause the program: create a
    pause() function. "man 3 termios" to disable line buffering, or
    check out [n]curses.
    2) Need to ask yourself why you need this. If you are running on a
    TTY or PTY, what is the benefit?

    The only use I've seen for this in Windows programs is to work around
    the horrible broken terminal emulator that comes with Windows. You
    won't have that problem on Linux: the emulator is not going to close
    when your program terminates, so this is pointless.


    Regards,
    Roger

    --
    Roger Leigh
    Printing on GNU/Linux? http://gimp-print.sourceforge.net/
    Debian GNU/Linux http://www.debian.org/
    GPG Public Key: 0x25BFB848. Please sign and encrypt your mail.
    Roger Leigh, Oct 16, 2005
    #9
  10. OT: system("PAUSE") for linux?

    In article <>,
    Roger Leigh <${rleigh}@invalid.whinlatter.ukfsn.org.invalid> wrote:
    ....
    >The only use I've seen for this in Windows programs is to work around
    >the horrible broken terminal emulator that comes with Windows.


    Actually, I use the "pause" functionality (built-in in DOS/Windows; written
    by me [and others] for Unix) frequently on both platforms for script
    debugging.

    And note, BTW, that some scripts are never (fully) debugged because the
    data sources are unreliable. So, the pauses must be left in in perpetuity.

    >You won't have that problem on Linux: the emulator is not going to close
    >when your program terminates, so this is pointless.


    (It is somewhat unclear to what you are really referring here, since Windows
    doesn't really have an "emulator" - in the sense that Unix does. But,
    leaving that aside for the moment...)

    Actually, this *is* a problem under Unix, as frequent postings in the shell
    group(s) attest. That is, people looking for something along the lines of:

    xterm -e sh -c '...;echo "Press enter...";read x'
    Kenny McCormack, Oct 16, 2005
    #10
  11. Paminu

    Ben Pfaff Guest

    Roger Leigh <${rleigh}@invalid.whinlatter.ukfsn.org.invalid> writes:

    > While it's certainly possible, you
    > 1) Don't want to use system(3) just to pause the program: create a
    > pause() function.


    Why is it a bad idea to use system() to pause a program? Waiting
    for a keystroke from a user is hardly performance-intensive.

    By the way, please don't use Unix manpage notation in
    comp.lang.c. It confuses people who are not familiar with Unix,
    because it looks like a function invocation.
    --
    "It would be a much better example of undefined behavior
    if the behavior were undefined."
    --Michael Rubenstein
    Ben Pfaff, Oct 16, 2005
    #11
  12. Paminu

    Roger Leigh Guest

    Ben Pfaff <> writes:

    > Roger Leigh <${rleigh}@invalid.whinlatter.ukfsn.org.invalid> writes:
    >
    >> While it's certainly possible, you
    >> 1) Don't want to use system(3) just to pause the program: create a
    >> pause() function.

    >
    > Why is it a bad idea to use system() to pause a program? Waiting
    > for a keystroke from a user is hardly performance-intensive.


    No, but it is extremely wasteful of system resources when you compare
    the cost of starting a whole new program to wait for a keypress
    compared with doing it yourself in just a few lines of code.


    --
    Roger Leigh
    Printing on GNU/Linux? http://gimp-print.sourceforge.net/
    Debian GNU/Linux http://www.debian.org/
    GPG Public Key: 0x25BFB848. Please sign and encrypt your mail.
    Roger Leigh, Oct 16, 2005
    #12
    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. Jason Shohet
    Replies:
    10
    Views:
    1,877
    Kevin Spencer
    Jun 18, 2004
  2. GrantMagic

    pause a loop

    GrantMagic, Jul 28, 2004, in forum: ASP .Net
    Replies:
    1
    Views:
    1,961
  3. Leah

    Pause a web page?

    Leah, Mar 15, 2006, in forum: ASP .Net
    Replies:
    1
    Views:
    3,131
    Steve C. Orr [MVP, MCSD]
    Mar 15, 2006
  4. Rick
    Replies:
    4
    Views:
    41,501
    Roedy Green
    Oct 8, 2003
  5. E Tepp

    Pause Util Value is returned

    E Tepp, Dec 15, 2003, in forum: Java
    Replies:
    2
    Views:
    423
    Matthew Zimmer
    Dec 15, 2003
Loading...

Share This Page