Newsgroups: fj.lang.c
Path: galaxy.trc.rwcp.or.jp!jaist-news!cs.titech!wnoc-tyo-news!sh.wide!wnoc-kyo!kyu-cs!hakata!ie.u-ryukyu.ac.jp!yas
From: yas@ocean.ie.u-ryukyu.ac.jp (Yasushi Shinjo)
Subject: Re: Q: How to include object file.
In-Reply-To: adachi@ailabc.d.dendai.ac.jp's message of 19 Nov 93 05:16:02 GMT
Message-ID: <YAS.93Nov20133455@top.ie.u-ryukyu.ac.jp>
Lines: 83
Sender: news@spn.ie.u-ryukyu.ac.jp (News System Admin)
Organization: Dept. of Elect. & Info. Eng., Univ. of the Ryukyus, Okinawa,
	Japan
References: <ADACHI.93Nov19141602@ailabc.d.dendai.ac.jp>
Date: Sat, 20 Nov 1993 04:34:55 GMT
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:1397
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=1397&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$B$3$s$K$A$O!#?7>k!wN05eBg3X>pJs$G$9!#(B

In article <ADACHI.93Nov19141602@ailabc.d.dendai.ac.jp> 
adachi@ailabc.d.dendai.ac.jp (adachi) writes:
>   $B$3$s$K$A$O!"B-C#!wEE5!Bg$G$9!#(B

> $B$"$k%W%m%0%i%`$+$i!"(BC $B$G:n$C$?4X?t$N%*%V%8%'%/%H%U%!%$%k$rFI$_9~$s$G(B
> $B!J%j%s%/$7$F!K!"$=$N4X?t$r;HMQ$9$k$K$O$I$N$h$&$JJ}K!$,$"$k$N$+!"$K$D$$(B
> $B$F$N<ALd$G$9!#(B
> $B;HMQ4D6-$O!"(BSUN IPX, SunOS4.1.3 $B$G$9!#(B

Sun $B$J$i$P!"(Bdlopen(3X) $B$H$$$&$b$N$,$"$j$^$9!#!J$3$l$O!"(BSVR4 
$B$N5!G=$+$J!)!K;d$b;H$C$?$3$H$,$"$j$^$;$s$,!";n$7$F$_$F$O$$$+(B
$B$,$G$9$+!)(B

----------------------------------------------------------------------
DLOPEN(3X)       MISCELLANEOUS LIBRARY FUNCTIONS       DLOPEN(3X)

NAME
     dlopen, dlsym, dlerror, dlclose - simple programmatic inter-
     face to the dynamic linker

SYNOPSIS
     #include <dlfcn.h>

     void *dlopen(path, mode)
     char *path; int mode;

     void *dlsym(handle, symbol)
     void *handle; char *symbol;

     char *dlerror()

     int dlclose(handle);
     void *handle;

DESCRIPTION
     These functions provide a simple programmatic  interface  to
     the  services  of  the  dynamic link-editor.  Operations are
     provided to add a new shared object to an program's  address
     space,  obtain  the  address  bindings of symbols defined by
     such objects, and to remove such objects when their  use  is
     no longer required.
----------------------------------------------------------------------

> $B$J$I$H$7$F!"(Btext data $B$rFI$_9~$`$3$H$G$$$$$N$G$7$g$&$+!)(B
> $B$&!<$s!"FI$_9~$s$G$+$iL\I8$N4X?t$N%]%$%s%?$rC5$;$PNI$$$N$+$J!)(B

$B$3$s$J46$8$8$c$J$$$G$7$g$&$+!#(B

----------------------------------------------------------------------
void *handle ;
void (*func)();

handle = dlopen("objct-file-name",1 );
func   = dlsym(handle,"function_name");
(*func)( 0, 1, 2 );
----------------------------------------------------------------------

$B$&$^$/$$$C$?$i!"65$($F$/$@$5$$!#(B

> $B$3$N$h$&$JJ}K!$G2DG=$G$7$g$&$+!)$I$N$h$&$JJ88%$r$"$?$C$F$h$$$+$H$$$&>p(B
> $BJs$G$b7k9=$G$9$+$i$h$m$7$/$*4j$$$7$^$9!#(B

$B$"$H!"(BXerox PCR (Portabl Common Runtime) $B$H$$$&%7%9%F%`$,$"(B
$B$j$^$9!#$3$l$G$O!"#C8@8l$G(B Lisp $B$N$h$&$JF0E*%m!<%I!"$4$_=8$a(B
$B!J$D$$$G$K!"B?=E%9%l%C%I$b!K$,$G$-$k$b$N$G$9!#$?$H$($P!"<!$N(B
$B=j$+$i(B ftp $B$G$-$k$G$7$g$&!#(B

    ftp.ricoh.co.jp:/pub/misc/pcr4_4.tar.Z
    ftp.cs.keio.ac.jp:/pub/lang/pcr4_4.tar.Z

PCR$B$K4X$9$kO@J8$O!"<!$K=P$F$$$^$9!#(B

    M.Weiser, A.Demers and C.Hauser: "The Portable Common
    Runtime Approach to Interoperability", SOSP12, ACM Operating
    System Review, Vol.23, No.5, pp.114-122 (1989).

$BB-C#$5$s!"(Bdlopen() $B$G$b(B PCR $B$G$b!"$b$7;n$5$l$?;~$K$O!"7k2L(B
$B!J$&$^$/$$$C$?!?<:GT$7$?!K$r65$($F$/$@$5$$$M!#(B

$B!@!@!!?7>k!!Lw!!!J$7$s$8$g$&!!$d$9$7!K!!!@!@(B
$B!@!@!!N05eBg3X!!>pJs9)3X!!!!!!!!!!!!!!!!!@!@(B
