Amit <bubuman_98 yahoo com> wrote: > Hello, > > Please pardon my ignorance, as I am just starting up > with ORBit. I will really appreciate if anyone can > help me with the following : > > I have created the server and created the client. I > want to start server programmatcally (in stead of > typing). Is there an example somewher , which I can > refer to? Also, how can I use the client from an > external program ? You need to use fork() and exec() to start your server from the client. Basic pseudo-C-code (off the top of my head, messy as hell, intended as a guide only, don't copy and paste this code, research it and learn what you're really doing!): /* make unnamed pipes for communication between parent and child */ int fds[2]; pipe(fds); childpid = fork(); if (childpid > 0) { /* parent */ char iorbuf[4097]; close(fds[1]); /* read the IOR from the child */ read(fds[0], 4096, iorbuf); } else if (childpid == 0) { /* child */ close(fds[0]); /* make stdout go to parent */ dup2(fds[1], 1); /* exec your server, which writes the IOR to stdout */ char *args[2] = {"/path/to/your/server", NULL}; exec("/path/to/your/server", args); /* NOTREACHED */ fprintf(stderr, "Where does your server *really* live?"); } else { /* error */ } Or something like that. Read man pages for pipe(), fork(), exec(), and probably dup2(), read() and write() as well. An alternative is for the child to simply create a server object and write the IOR to the pipe, rather than starting a seperate server program. -- Sam Couter | Internet Engineer | http://www.topic.com.au/ sam topic com au | tSA Consulting | OpenPGP key available on key servers OpenPGP fingerprint: A46B 9BB5 3148 7BEA 1F05 5BD5 8530 03AE DE89 C75C -- Sam Couter | Internet Engineer | http://www.topic.com.au/ sam topic com au | tSA Consulting | OpenPGP key available on key servers OpenPGP fingerprint: A46B 9BB5 3148 7BEA 1F05 5BD5 8530 03AE DE89 C75C
Attachment:
pgpbmeHCdPt2d.pgp
Description: PGP signature