Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
namazu コマンドを cgi から使用するには?
- From: "Hiroshi Iwamura" <iwamura@xxxxxxxxxxxxxxx>
- Date: Sat, 29 Apr 2000 18:38:19 +0900
- X-ml-name: namazu-users-ja
- X-mail-count: 00355
岩村です。
始めまして。
Namazuを使って、CGIを立ち上げようとしているのですが、
うまくいかないので、ご教授ください。
CGIなので、namazu.cgi使用すれば、問題ないのですが、
Postgresとの連携、また、特殊フォーマットでのHtml出力
が必要なため、namamuコマンドをCGIから呼び出そうとし
ています。
用いている言語は、C言語です。呼び出しには、popenを
使用しています。
しかし、namazuコマンドを呼び出すと、
「namazu.cgi」コマンドを使用しなさい
というエラーメッセージが帰ってきてしまいます。
CGI内部でnamazuコマンドを使用することはできないので
しょうか?
憶測では、環境変数を少しいじってやるとよいよい気がしま
すが...
ちなみに、呼び出し部分のプログラムです。
sprintf(Buf,"/usr/local/bin/namazu -c %s %s",KEY,PATH_TO_INDEX);
if((pi = popen(Buf,"r")) == NULL) {
strcpy(ErrString,"Can not Open namazu");
goto ERR_EXIT;
}
fgets(Buf,1024,pi);
if(Buf[strlen(Buf) - 1] == '\n') Buf[strlen(Buf) - 1] = '\0';
AllPt = atoi(Buf);
sprintf(Buf,"/usr/local/bin/namazu -l -n40 -w%d %s
%s",CurPt,KEY,PATH_TO_INDEX);
if((pi = popen(Buf,"r")) == NULL) {
strcpy(ErrString,"Can not Open namazu");
goto ERR_EXIT; /* エラー文字列取得&終了
*/
}
RNum = 0;
while(fgets(Buf,1024,pi)) {
i = strlen(Buf) - 9;j = 0;
while(Buf[i++] == '0');
while((Buf1[j++] = Buf[i++]) != '.');
Buf1[--j] = '\0';
Result[RNum++] = atol(Buf1);
}