[pgsql-jp: 36119] Re: psqlコマンドでshを実行?
Yumiko Izumi
izumi-yumiko @ tokyo.scnet.co.jp
2005年 10月 13日 (木) 09:35:40 JST
持田@NETside 様
伊藤 様
回答ありがとうございます。
ご指摘のように、Unixの問題ですね・・・。
> > 以下のようなコマンドラインを実行するコマンドをC言語で開発しています。
> >
> > psql testDB -t -f test.sql -o result.txt -h targetnode -U user >& err.txt
> >
> > 開発したコマンドは、Linuxでは正しく実行できるのですが、HPUX、
> > Solaris、AIXでは以下のようなエラーが出て失敗します。
>
> C 言語からどうやってコマンドを起動していますか? system(3)? exec(3)?
> sh(1) を使って実行する、と書いてありませんか?
> Linux の /bin/sh(実体は bash)が >& を解釈できる、ということだけの
> ような気がしますが。
system()で実行しています。
このあたりの動作を正確に知りませんでした。
勉強不足でお手数をかけて申し訳ないです。
> > 3.どうすればログインシェルで実行できるのか?
> >
>
> C言語で作成するコマンドを
> #!/bin/csh
> psql testDB -t -f test.sql -o result.txt -h targetnode -U user >& err.txt
> のようにして、これを実行してやれば良いかと思います。
ご提案ありがとうございます。
しかし、残念ながら諸事情によりシェルに移植することが出来ないので、
リダイレクションを直します。
以上よろしくお願いします。
pgsql-jp メーリングリストの案内