[#5498] postscript — Kikutani Makoto <kikutani@...>

TkCanvasの

23 messages 1997/12/02
[#5499] Re: postscript — matz@... (Yukihiro Matsumoto) 1997/12/02

まつもと ゆきひろです

[#5502] Re: postscript — Kikutani Makoto <kikutani@...> 1997/12/02

きくたにです。

[#5535] wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5536] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/05

きくたにです。

[#5538] Re: wave viewer (Re: postscript) — matz@... (Yukihiro Matsumoto) 1997/12/05

まつもと ゆきひろです

[#5547] Re: wave viewer (Re: postscript) — Kikutani Makoto <kikutani@...> 1997/12/06

きくたにです。

[#5504] cgi-lib.rb — 青山 和光 <PXN11625@...>

cgi-lib.rb, shellwords.rb の新版です。

22 messages 1997/12/02
[#5505] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5506] Re: cgi-lib.rb — keiju@... (石塚圭樹 ) 1997/12/03

けいじゅ@日本ラショナルソフトウェアです.

[#5508] Re: cgi-lib.rb — matz@... (Yukihiro Matsumoto) 1997/12/03

まつもと ゆきひろです

[#5512] Re: cgi-lib.rb — Shin-ichiro HARA <sinara@...> 1997/12/03

原です。

[#5539] ruby 1.0-971204 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/12/05
[#5542] Re: ruby 1.0-971204 released — Noritsugu Nakamura <nnakamur@...> 1997/12/05

[#5572] Re: ruby 1.0-971204 released — Shoichi OZAWA <ozawa@...> 1997/12/08

こんにちは 小澤@日立 です。

[#5615] bug in String#scan ?? — Yuji Shigehiro <sigehiro@...>

しげひろです.

17 messages 1997/12/10
[#5616] Re: bug in String#scan ?? — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#5668] Re: ObjectDBM — 青山 和光 <PXN11625@...>

石塚さん(B... さんですよね?)、おはようございます。

14 messages 1997/12/13

[ruby-list:5490] Re: communicate with subprocess part II

From: Kikutani Makoto <kikutani@...>
Date: 1997-12-01 07:41:23 UTC
List: ruby-list #5490
きくたにです。

もはや独り言モードなので読み飛ばしてください。

Fri, Nov 28, 1997 at 04:09:15PM +0900 において
Kikutani Makoto 曰く:

> > 質問その2:
> > ipc-test1.rb のように双方向のパイプ(?)を作るのはPythonではできない
> > そうですが、Cで書くにはどうすればいいのでしょうか?
> 
> こっちはNutshell本のUsing C on the UNIX Systemを見てたら
> 似たよなのがあったので、こうしてみました。

(snip)

> なんか変。
> rubyじゃなくなってすみませんが、Unixプログラムのシロートに
> 教えてやってください。

なるほど、双方向パイプの場合は pipe(2) を二回呼ぶ必要があるのですか。
Python本見てて気付きました。PythonではこのCの方法をそのまま使う
しかないので。

rubyの open("|./ipc1.rb", "r+") の記法は楽でいいですね。
これはPerlからの継承?


#include <stdio.h>
main()
{
   FILE *fpw, *fpr;
   int pid, pipefds1[2], pipefds2[2];
   int i[1];
   char resp[5];

   pipe(pipefds1);
   pipe(pipefds2);

   pid = fork();

   if (pid == 0) { /* child */
      close(pipefds1[0]);
      close(pipefds2[1]);
      dup2(pipefds2[0], 0);
      dup2(pipefds1[1], 1);
      execl("./ipc1.rb", "ipc1.rb", 0);
      exit(1);
   }
   /* parent */
   close(pipefds1[1]);
   close(pipefds2[0]);
   fpr = fdopen(pipefds1[0], "r");
   fpw = fdopen(pipefds2[1], "w");

   i[0] = 0x12345678;
   fwrite(i, sizeof(int), 1, fpw);
   fflush(fpw);
   fread(resp, sizeof(char), 2, fpr);
   resp[2] = '\0';
   fprintf(stderr, "ipc-test1.c: %s\n", resp);
   fwrite("ruby", sizeof(char), 4, fpw);
   fflush(fpw);
   fread(resp, sizeof(char), 2, fpr);
   resp[2] = '\0';
   fprintf(stderr, "ipc-test1.c: %s\n", resp);

   exit(0);
}

-- 
人生を背負い投げ

菊谷 誠(Kikutani Makoto)  kikutani@eis.or.jp kikutani@jdc.ericsson.se
hgf03701@niftyserve.or.jp    http://www.eis.or.jp/muse/kikutani/

In This Thread