[FFmpeg-trac] #42(FFmpeg:open): don't read stdin when running in a noninteractive shell
FFmpeg
trac at avcodec.org
Fri Aug 26 10:03:06 CEST 2011
#42: don't read stdin when running in a noninteractive shell
---------------------------------------+---------------------
Reporter: taeuber | Owner:
Type: enhancement | Status: open
Priority: wish | Component: FFmpeg
Version: git | Resolution:
Keywords: noninteractive shell stdin | Blocked By:
Blocking: | Reproduced: 0
Analyzed: 0 |
---------------------------------------+---------------------
Comment (by taeuber):
Replying to [comment:6 michael]:
> Replying to [comment:5 taeuber]:
> > Hi Michael,
>
> Hi lars
>
>
> >
> > i found the correct solution:
> > {{{
> > inline int interactive()
> > {
> > return isatty(0);
>
> i wish it was so simple
> but isatty is true for a command like
> ffmpeg -i abc.avi def.avi &
>
> and that will then still get stuck without </dev/null
In this case we should check for being a foreground process.
This is what my first solution does:
{{{
int foreground_process()
{
int fd, foreground;
fd = open ("/dev/tty", O_RDONLY);
if (fd < 0)
return fd;
foreground = (tcgetpgrp(fd) == getpgid(0));
close (fd);
return foreground;
}
}}}
But this can change during execution. (Control-Z and then bg in bash)
Lars
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/42#comment:7>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list