eckhgb@atrium.UUCP (Gary B Eckhardt) (04/10/88)
Help! I am in need of some good examples using VAX virtual mailboxes. The one example they have in the System Services guide leaves much to be desired. What I need to do is simply get two separate jobs running on the same machine to communicate. The language I would like to see examples from is Pascal (that's what the project is written in) but ANY language will suffice, I just need some good examples. Thanks for any help! --Gary Eckhardt +-------------------------------------------------------------------------+ ! BITNET : $GBE2895 AT UTSAVM1 ! ! UUCP : gatech!petro!atrium!eckhgb "Thanks to modern caffiene, ! ! TEXNET : UTSA80::CS475301013 sleep is now optional!" ! +-------------------------------------------------------------------------+
MISH@VMS3.MACC.WISC.EDU (Tom Mish - MACC) (05/06/88)
>Help! I am in need of some good examples using VAX virtual mailboxes. >The one example they have in the System Services guide leaves much >to be desired. What I need to do is simply get two separate jobs >running on the same machine to communicate. The language I would >like to see examples from is Pascal (that's what the project is >written in) but ANY language will suffice, I just need some good >examples. Thanks for any help! > > --Gary Eckhardt Gary, I beleive that there are a few more examples in the Using PASCAL on VMS manual, or some such thing. I was trying to do the same thing a few years ago, but gave up because I found an easier way. Good Luck _____________________ ____________________________ ___________________ \ / \ / Tom \ / Bit: mish@wiscmacc \ / Univ. Of Wis. Mish X Arpa: mish@vms.macc.wisc.edu X Madison Jr. / \ Phone: (608) 262-8525 / \ MACC _____________________/ \____________________________/ \___________________
bengtb@erix.UUCP (Bengt Baeverman) (05/19/88)
Sending and receiving things through mailboxes are not that complicated. Below are two programs that can be run by two processes in the same group. This receiver side has to create the mailbox and wait for a message before the sender can see the mailbox and send the message. [inherit('sys$library:starlet')] program receiver (input, output); const mailboxname = 'demo_box'; type word = [word] 0..65535; iosbtype = record status : word; count : word; pid : unsigned; end; var string : varying [255] of char; channel : word; status : unsigned; iosb : iosbtype; procedure lib$signal(%immed signal: unsigned); external; begin status := $crembx(chan := channel, lognam := mailboxname); if not odd(status) then lib$signal(status); status := $qiow(chan := channel, func := io$_readvblk, iosb := iosb, p1 := string.body, p2 := size(string.body)); if not odd(status) then lib$signal(status); if not odd(iosb.status) then lib$signal(iosb.status); string.length := iosb.count; writeln('I just recieved <', string, '>'); status := $dassgn(channel); if not odd(status) then lib$signal(status); end. [inherit('sys$library:starlet')] program sender (input, output); const mailboxname = 'demo_box'; type word = [word] 0..65535; iosbtype = record status : word; count : word; pid : unsigned; end; var string : varying [255] of char; channel : word; status : unsigned; iosb : iosbtype; procedure lib$signal(%immed signal: unsigned); external; begin status := $crembx(chan := channel, lognam := mailboxname); if not odd(status) then lib$signal(status); status := $qiow(chan := channel, func := io$_readvblk, iosb := iosb, p1 := string.body, p2 := size(string.body)); if not odd(status) then lib$signal(status); if not odd(iosb.status) then lib$signal(iosb.status); string.length := iosb.count; writeln('I just recieved <', string, '>'); status := $dassgn(channel); if not odd(status) then lib$signal(status); end. Good luck! bengt baverman, bengtb@erix.se OPIAB Digitech, Stockholm, Sweden.