DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Programming tips and known problems

Commands

If an FMLI application initiates a call to a UNIX system command (for example, action=`unix_command`nop) and the interrupt descriptor evaluates to FALSE for that action descriptor (see ``Interrupt signal handling''), users will not be able to do other tasks until the command completes even if the command could be interrupted. If the command takes a considerable amount of time to execute, the application writer may want the command to execute in the background.

Since FMLI does not recognize the shell background symbol ``&'', the shell built-in command must be used (for instance, action=`shell "unix_command > /dev/null &"`nop).

If you want the user to continue to be able to interact with the application while the background job is running, the output of an executable run by shell in the background must be redirected: to a file if you want to save the output, or to /dev/null if you do not want to save it (or if there is no output); otherwise your application may appear to be hung until the background job finishes processing. The application writer may also wish to explore the co-processing facility coproc(1fmli) which establishes a pipe between FMLI and another independent UNIX system process.

When an FMLI command is disabled in the commands file, as in

name=update
action=nop

this disables it throughout the interface. There is no way to remove it from the Command Menu and still leave it available for use in the application code itself.


Next topic: Co-processing functions
Previous topic: Scenario 2

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004