The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"подмена /dev/tty"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"подмена /dev/tty"
Сообщение от igvas emailИскать по авторуВ закладки(ok) on 17-Авг-04, 18:35  (MSK)
Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2.
Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump просит пароль не через stdin, то организовать pipe и передать через него пароль никак не получается. Я понимаю, что делами backup-a должен заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос: как передать pg_dump-у пароль, введенный пользователем в диалоге.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "подмена /dev/tty"
Сообщение от vint Искать по авторуВ закладки(??) on 17-Авг-04, 18:38  (MSK)
>Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2.
>Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем
>потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через
>неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump
>просит пароль не через stdin, то организовать pipe и передать через
>него пароль никак не получается. Я понимаю, что делами backup-a должен
>заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос:
>как передать pg_dump-у пароль, введенный пользователем в диалоге.

можна поробовать через popen

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "подмена /dev/tty"
Сообщение от chip Искать по авторуВ закладки(??) on 18-Авг-04, 17:13  (MSK)
>можна поробовать через popen

я извиняюсь, может быть я чего-то не допонимаю, но какая разница между pipe и popen, кроме того что последний открывает канал и fork()'aeт процесс, возвращая в дальнейшем указатель на FILE ? Запись в этот FILE* будет эквивалента записи в stdin порожденного процесса, но в формулировке же написано, что pg_dump берет его через open("/dev/tty")

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "подмена /dev/tty"
Сообщение от igvas Искать по авторуВ закладки(??) on 18-Авг-04, 19:22  (MSK)
Совершенно верно, но popen не возвращает управление вызвавшему процессу до тех пор, пока не выполнится pg_dump, поэтому я не могу получить FILE* и, соответственно писать в него не могу.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "подмена /dev/tty"
Сообщение от qq Искать по авторуВ закладки(??) on 19-Авг-04, 03:44  (MSK)
>Я пишу софтину на QT. Софтина-клиент базы данных PostgreSQL v7.2.
>Есть задача дать пользователю возможность делать backup базы. Я пытаюсть в дочернем
>потоке exec-нуть утилиту pg_dump, но та, открывает /dev/tty и просит через
>неё пароль. НО! пароль вводится пользователем в диалоге. Так как pg_dump
>просит пароль не через stdin, то организовать pipe и передать через
>него пароль никак не получается. Я понимаю, что делами backup-a должен
>заниматься админ, но мне ПОЗАРЕЗ НАДО buckup-ить базу из диалога. Вопрос:
>как передать pg_dump-у пароль, введенный пользователем в диалоге.


по идее должно помочь man openpty (там же forkpty)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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