[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 メーリングリストの案内