![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Linux RedHat, Ubuntu, SUSE, Fedora, Debian, Mandriva, Slackware, Gentoo Linux, PCLinuxOS. Все Linux вопросы здесь! |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Руководство по установке: Oracle Database 11G Выпуск 1 на Oracle Enterprise Linux 5 | iBot | Oracle Обновления (RSS) | 0 | 04-06-2008 06:10 AM |
| Обновление руководства: переход на Oracle 11G RAC на Oracle Enterprise Linux | iBot | Oracle Обновления (RSS) | 0 | 04-06-2008 06:10 AM |
| Build Your Own кластер Oracle RAC на Oracle Enterprise Linux и iSCSI | iBot | Oracle Обновления (RSS) | 0 | 04-06-2008 06:10 AM |
| Установка Oracle RAC 10g на Oracle Enterprise Linux с использованием VMware Server | iBot | Oracle Обновления (RSS) | 0 | 04-06-2008 06:10 AM |
| Oracle (R) университета Запуск Enterprise Linux подготовки и ... - CNNMoney.com | iBot | UNIX и Linux RSS Новости | 0 | 11-14-2007 10:00 |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
||||
|
vgscan не производит выходного файла с использованием дескрипторов на Oracle Enterprise Linux.
Я написал небольшую программу, которая позволит создать дочерний процесс для выполнения команд и вывода будет перенаправлен в файл.
Пожалуйста, посмотрите на следующий код -> # включить <stdio.h> # включить <stdlib.h> # включить <sys/stat.h> # включить <fcntl.h> недействительным исполнить (символ ** argv) ( pid_t PID; INT статуса; INT fStdOutDesc \u003d OPEN ( "/ TMP / outfile", O_CREAT | O_RDWR, S_IREAD | S_IWRITE); INT fStdErrDesc \u003d OPEN ( "/ TMP / errfile", O_CREAT | O_RDWR, S_IREAD | S_IWRITE); printf ( "Из файла DESC dup2 является% D \ N", fStdOutDesc); printf ( "Ошибка файла DESC dup2 является% D \ N", fStdErrDesc); если ((PID \u003d вилка ()) <0) / * вилка ребенка процесс * / ( printf ( "ERROR: forking ребенка процесс Failed ... \ N"); выход (1); ) остальное, если (PID \u003d\u003d 0) / * для ребенка процесс: * / ( dup2 (fStdOutDesc, fileno (STDOUT)); dup2 (fStdErrDesc, fileno (STDERR)); если (execvp (* argv, argv) <0) / * выполнить команду * / ( printf ( "ERROR: EXEC Failed ... \ N"); выход (1); ) ) другое / * для родительского процесса: * / ( а (подождать (И статус)! \u003d PID); / * дождаться завершения * / ) ) INT основных (вакуума) ( символ CMD [1024]; знаков * argv [64]; printf ( "введите команду:"); scanf ( "% S", И CMD); / * работает на Ls И не работает vgscan * / printf ( "\ N"); argv [0] \u003d CMD; argv [1] \u003d '\ 0'; выполнения (argv); возврат 0; ) После запуска программы прежде, он будет для оперативного ввода (команды), если вы введете "LS", выход из "ООО" команды перенаправляется в / TMP / outfile, то после ввода vgscan, не будет ничего ни в / TMP / outfile или / TMP / errfile. Эта проблема является особенно с несколькими командами, как vgscan, pvscan, vgdisplay, lvdisplay т.д. то эти команды будут давать выхода, если побежал через оболочку. Именно так обстоит дело только для Oracle Enterprise Linux. Эта же программа прекрасно работает в других версиях Linux. Любая помощь по этому было бы очень полезно. |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|