подмена /dev/tty, igvas, 17-Авг-04, 18:35 [смотреть все]Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2. Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump просит пароль не через stdin, то организовать pipe и передать через него пароль никак не получается. Я понимаю, что делами backup-a должен заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос: как передать pg_dump-у пароль, введенный пользователем в диалоге. |
- подмена /dev/tty, vint, 18:38 , 17-Авг-04 (1)
>Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2. >Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем >потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через >неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump >просит пароль не через stdin, то организовать pipe и передать через >него пароль никак не получается. Я понимаю, что делами backup-a должен >заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос: >как передать pg_dump-у пароль, введенный пользователем в диалоге. можна поробовать через popen
- подмена /dev/tty, chip, 17:13 , 18-Авг-04 (2)
>можна поробовать через popen я извиняюсь, может быть я чего-то не допонимаю, но какая разница между pipe и popen, кроме того что последний открывает канал и fork()'aeт процесс, возвращая в дальнейшем указатель на FILE ? Запись в этот FILE* будет эквивалента записи в stdin порожденного процесса, но в формулировке же написано, что pg_dump берет его через open("/dev/tty")
- подмена /dev/tty, igvas, 19:22 , 18-Авг-04 (3)
Совершенно верно, но popen не возвращает управление вызвавшему процессу до тех пор, пока не выполнится pg_dump, поэтому я не могу получить FILE* и, соответственно писать в него не могу.
- подмена /dev/tty, qq, 03:44 , 19-Авг-04 (4)
>Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2. >Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем >потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через >неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump >просит пароль не через stdin, то организовать pipe и передать через >него пароль никак не получается. Я понимаю, что делами backup-a должен >заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос: >как передать pg_dump-у пароль, введенный пользователем в диалоге. по идее должно помочь man openpty (там же forkpty)
|