私はこのようなプログラムを持っています(これはPro * Cプリコンパイラ用です):
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <errno.h>
EXEC SQL BEGIN DECLARE SECTION;
static VARCHAR ora_connect_str[81];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA;
int main()
{
FILE *f;
int rc = 1;
char *eptr=getenv("DB_LOGIN");
strcpy(ora_connect_str.arr, eptr);
ora_connect_str.len = strlen(eptr);
EXEC SQL CONNECT :ora_connect_str;
f=popen("exit 0", "r");
rc = pclose(f);
printf("errno=%d rc=%d\n", errno, rc);
}
oracleへのtcp/ip接続を使用すると、問題なく動作します。しかし、BEQを使用すると、pclose()はerrno 10で-1を返します。誰かがBEQ接続で発生する可能性のある問題を説明するドキュメントに私を導くことができますか?オラクルの内臓のどこかに、すでにwait()呼び出しがあるようです…</ p>