Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

SYSTEM(3)

       man system

       [...]

       PORTABILITY
       ANSI C requires `system', but leaves the nature and effects of a command processor undefined. ANSI C does, however, specify that `system(NULL)' return zero or nonzero to report on the existence of a command processor.

       POSIX.2 requires `system', and requires that it invoke a `sh'. Where `sh' is found is left unspecified.


     Радуют иногда маны. ANSI C требует, чтобы вызов system() существовал, но не описывает, что именно он должен делать. Тем не менее, стандарт требует, чтобы можно было проверить, делает ли что-то system(), вызвав system(NULL). POSIX.2 требует, чтобы при использовании system() вызывался 'sh', но не говорит, где брать sh (особенно в windows NT, которая сертифицирована по POSIX (правда, POSIX.1), но никакими sh в которой и не пахнет).
     Особенно радует, что всё это я выяснил, перетаскивая мелкую счётную программку самого конца прошлого века (ещё под дос) под cygwin. Некрокомпьютинг рулит, да :-)
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments