![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| リナックス RedHatのは、 Ubuntuのは、 SUSEの、フェドーラが、 Debian 、 Mandrivaは、 Slackware 、 Gentoo Linuxは、 PCLinuxOS 。すべてのLinuxの質問はここ! |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| インストールガイド: 11グラムOracleデータベースのOracle Enterprise Linuxの5日に1リリース | アイボット | Oracleの更新情報( RSSフィード) | 0 | 2008年4月6日 06:10午前 |
| アップグレードガイド: OracleのRACの11グラムのOracle Enterprise Linuxの上に移動 | アイボット | Oracleの更新情報( RSSフィード) | 0 | 2008年4月6日 06:10午前 |
| を構築する独自のOracle RACのクラスタ上でのOracle Enterprise LinuxとのiSCSI | アイボット | Oracleの更新情報( RSSフィード) | 0 | 2008年4月6日 06:10午前 |
| 10グラムのOracle Enterprise LinuxのインストールのOracle RACの上でのVMware Serverを使用して | アイボット | Oracleの更新情報( RSSフィード) | 0 | 2008年4月6日 06:10午前 |
| オラクル(共和党)大学を開始Enterprise Linuxの研修と... - CNNMoney.com | アイボット | UNIXおよびLinuxのRSSニュース | 0 | 2007年11月14日 午前10時 |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
||||
|
vgscanは出力のOracle Enterprise Linuxの上でファイル記述子を使用して生産している。
私は、コマンドを実行するためには、出力をファイルにリダイレクトされる子プロセスを作成する単純なプログラムを書いた。
詳しくは、下記のコードを見て- > #含まれ<stdio.h> #含まれ<stdlib.h> #含まれ<sys/stat.h> #含まれ<fcntl.h> (文字** argv )を実行ボイド ( pid_t pidを; INTはステータス; INTは\u003d ( " / tmpに/ outfile "オープンfStdOutDesc 、 O_CREAT | O_RDWR 、 S_IREAD | S_IWRITE ) ; INTは\u003d ( " / tmpに/ errfile "オープンfStdErrDesc 、 O_CREAT | O_RDWR 、 S_IREAD | S_IWRITE ) ; printf ( "出力ファイル%です説明dup2エ\ Ñ " 、 fStdOutDesc ) ; printf ( "ファイル%ですメッセージ説明dup2エ\ Ñ " 、 fStdErrDesc ) ; 場合( ( pidをフォーク\u003d ( ) ) < 0 ) / *子プロセスをフォーク* / ( printf ( "エラー:分岐子プロセスに失敗しました... \ Ñ " ) ; 出口( 1 ) ; ) 他の場合( pidを\u003d\u003d 0 ) / *子プロセスのために: * / ( dup2 ( fStdOutDesc 、 fileno ( ) )はstdout ; dup2 ( fStdErrDesc 、 fileno ( ) )はstderr ; もし( execvp ( * argv 、 argv ) < 0 ) / *コマンドを実行* / ( printf ( "エラー:実行に失敗しました... \ Ñ " ) ; 出口( 1 ) ; ) ) 他の親プロセス/ * : * / ( は( ( &状態) ! \u003d PID )を待つ; / *完了を待つ* / ) ) INTはメイン(ボイド) ( 文字のCMD [ 1024 ] ; 文字* argv [ 64 ] ; printf ( "コマンドを入力してください: " ) ; scanf ( " % " 、 & CMDに) ; / * ls用&作品vgscan *動作しない/ printf ( " \ Ñ " ) ; argv [ 0 ] \u003dのCMD ; argv [ 1 ] \u003d ' \ 0 ' ; ( argv )を実行; 戻り0 ; ) 上記のプログラムを実行した後、一方の入力(コマンド)を入力する場合は" ls " 、 " lsの出力"コマンドにリダイレクトされますを/ tmp / outfile 、 vgscanを入力した後、のいずれかで何もされませんが要求されますを/ tmp /またはoutfileを/ tmp / errfile 。 この問題は特にvgscan 、 pvscan 、 vgdisplay 、 lvdisplay等のようないくつかのコマンドでは、これらのコマンドの出力の場合、シェルから実行する。 これはOracleのEnterprise Linux用のケースです。他のLinuxのバージョンと同じプログラムを微細に取り組んでいます。 任意の仕方については非常に役立つだろう。 |