The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
подмена /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)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру