F IPCTICKLERV1.0 4-NOV-2021 10:10 VSI C V7.4-002 H SOFTWAREID $READONLY$i $CODE$ $LITERAL$0$LINK$H$DATA$0 SOFTWAREID0J` TICKLERFORM(JMAIN(J__MAIN 5=IPCTICKLER AXP-1.2.0 @6= =  #G8^~ _#0"@^4GHcGG#]("0[8b "G@Zkb#@@BG4GHb/@ZkcG8]@]HP#/k///p#4G"0^~[8^@~HPX޴`hp>x^~GG#b@ZkBG4Gb@ZkG/Gp"B4Gb"@ZkB ,"b4G H?D////@ZkB"4Gb@Zk/B4G"b @Zk" B4GbDG@ZkBG4G"b/@ZkB4G`" bDG/@ZkBG"4Gb@ZkGB  X"" Db"#G@ZkBh""Gb@ZkDGB4Gp"bG@Zk " B4G"Db.JH"DG@ZkGB  "" D 4GbG@ZkBG""b/@Zk BGb""4G@Zk//=/4GB4G"bp"@ZkGBp   Db0"")! "G@ZkB#Gb""@ZkD GB4Gbb"@Zk Gp¦  B@Eb4GG6"@Zkp"Bb ""D@ZkpBBG" D Gb2"G@Zk@BP"""KGGGHb@Zk@BCP""" GGHb@Zk  @" =G0b""DDCB"BGbC FF=pE> 0>^GP@~ G 5"GG4D(>@Zk`B 4Ghb@Zk B4GP@TG(b/@ZkG//@TG@TG(B4 /5@j.@" BF =DGjJFrF/ [[/`X[((L:B @.sJTJF>. G`# x;JWJF>*/`.*Kt KS`JtF`> @J!.WJB>G+TGb@ZkGDpB GG4GkGxb@ZkL /pBG4GkGGxb/@ZkG`B 4Ghbp/@ZkBG%"bTG@ZkB+"b@Zk ` pbGBbtG +"@Zk/pBTG b ("@ZkG0]8]4G@}HPXݤ`hp=x]}#k/GPb#)@ӀB4G4Gb/@ZkBp "4Gb@Zk0BG8b@ZkB4Gb@Zk0BG8b@ZkB4Gb/@Zk0BG8b@ZkB4Gb@Zk//#4G~^@[^~ GGGP"Hb@Zk"`@pp@ "xbG7JBGGG]]} 0#k//0Bp "4G8b@Zk4HGd DECC$MAIN4Lb# DECC$MAIN4`@d DECC$MAIN4lG DECC$EXIT4xb# DECC$EXIT4@ DECC$EXIT4G  DECC$GETENV4b# DECC$GETENV4@  DECC$GETENV4  G$ DECC$ATOI4 b# DECC$ATOI4  @$ DECC$ATOI48GL DECC$GETENV4@b# DECC$GETENV4H@L DECC$GETENV4LG DECC$GETENV4\b# DECC$GETENV4@ DECC$GETENV4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4 G DECC$ATOI4 b# DECC$ATOI4 @ DECC$ATOI4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4 G DECC$ATOI4 b# DECC$ATOI4 @ DECC$ATOI 4G, DECC$GETENV4$b# DECC$GETENV4(@, DECC$GETENV4 0GT DECC$STRCMP4@b# DECC$STRCMP4 P@T DECC$STRCMP4 TGl DECC$STRCMP4db# DECC$STRCMP4 h@l DECC$STRCMP4tG DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4 G DECC$STRCMP4b# DECC$STRCMP4 @ DECC$STRCMP4 G DECC$STRCMP4b# DECC$STRCMP4 @ DECC$STRCMP4 G( DECC$STRCMP4b# DECC$STRCMP4 $@( DECC$STRCMP4DG\ DECC$GETENV4Pb# DECC$GETENV4X@\ DECC$GETENV4 `G DECC$STRCMP4pb# DECC$STRCMP4 @ DECC$STRCMP4 G DECC$STRCMP4b# DECC$STRCMP4 @ DECC$STRCMP4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4 G DECC$STRCMP4b# DECC$STRCMP4 @ DECC$STRCMP4G  DECC$GETENV4b# DECC$GETENV4@  DECC$GETENV4G<DECC$GXFPRINTF4,b#DECC$GXFPRINTF48@<DECC$GXFPRINTF4<Gd DECC$FREOPEN4\b# DECC$FREOPEN4`@d DECC$FREOPEN4dG DECC$FREOPEN4b# DECC$FREOPEN4@ DECC$FREOPEN4G$DECC$GXFPRINTF4b#DECC$GXFPRINTF4 @$DECC$GXFPRINTF4$G8 DECC$FFLUSH40b# DECC$FFLUSH44@8 DECC$FFLUSH48GT DECC$CALLOC4Hb# DECC$CALLOC4P@T DECC$CALLOC4 TGt DECC$FPUTS4 lb# DECC$FPUTS4 p@t DECC$FPUTS4G DECC$FWRITE4b# DECC$FWRITE4@ DECC$FWRITE4G DECC$FWRITE4b# DECC$FWRITE4@ DECC$FWRITE4G DECC$FFLUSH4b# DECC$FFLUSH4@ DECC$FFLUSH4 G  DECC$STRCMP4b# DECC$STRCMP4 @  DECC$STRCMP4  G$ DECC$FPUTS4 b# DECC$FPUTS4  @$ DECC$FPUTS 44GHDECC$GXFPRINTF48b#DECC$GXFPRINTF4D@HDECC$GXFPRINTF4TGlDECC$GXFPRINTF4`b#DECC$GXFPRINTF4h@lDECC$GXFPRINTF4G DECC$EXIT4b# DECC$EXIT4@ DECC$EXIT4G DECC$EXIT4b# DECC$EXIT4@ DECC$EXITDGCMA$TIS_VMSERRNO_GET_ADDRDb#CMA$TIS_VMSERRNO_GET_ADDRD@CMA$TIS_VMSERRNO_GET_ADDR4G  DECC$EXIT4b# DECC$EXIT4@  DECC$EXITD GCMA$TIS_VMSERRNO_GET_ADDRDb#CMA$TIS_VMSERRNO_GET_ADDRD@CMA$TIS_VMSERRNO_GET_ADDR4G4 DECC$EXIT4(b# DECC$EXIT40@4 DECC$EXITD4GDCMA$TIS_VMSERRNO_GET_ADDRD<b#CMA$TIS_VMSERRNO_GET_ADDRD@@DCMA$TIS_VMSERRNO_GET_ADDR4DGX DECC$EXIT4Pb# DECC$EXIT4T@X DECC$EXIT4pG DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4GDECC$GXFPRINTF4b#DECC$GXFPRINTF4DECC$GXFPRINTF4G DECC$EXIT4b# DECC$EXIT4 @ DECC$EXIT = y Content-Type: text/html %s
CGI Script IPC Tickler
mailbox MRS: %d
record size: 
total chars: 
fopen() ctx= recbin
xplct
function: fputs()fwrite(n,1)fwrite(1,n)
script-control: X-record-modeX-stream-mode(none)
X-buffer-records
content-type:text/plainapplication/octet-stream
   
The CGI script Inter-Process Communication (IPC) tickler is designed to allow a script programmer to gain an appreciation of the way WASD interacts with VMS' record-oriented Input/Output (I/O) design, how the C Language Run-Time Library interprets U**x I/O conventions into this, how WASD attempts to accomodate both, how the mechanisms a script can use to explicitly convey exact requirements to WASD ... and finally, how these affect output (in particular the carriage-control) delivered to the client.

Check the WASD Scripting document for information on the handling of Script Output in relation to "text/.." and non-"text/.." content-type. Use this utility to manipulate the record size (number of characters between newlines) and total characters output against stream mode and C-RTL output function, to observe how (implied) carriage-control is provided to the client. WASD CGI response fields can be added to manipulate the desired programming requirement and outcome.

Use the WATCH facility with CGI, DCL and Network Activity/Data items to directly observe the octets provided by the script and subsequently provided to the client.

 =8,+++ OUTPUT FAILED +++ OUTPUT: %d chars  =XKmailbox mrs: %d record size: %d total chars: %d fopen(%s%s%s) %s%s%s %s%s=Content-Type: %s Script-Control: X-content-encoding-gzip=0 Script-Control: X-transfer-encoding-chunked=0 %s%s Script-Control: X-buffer-records = x-buffer-records=ZRScript-Control: X-stream-mode Script-Control: X-record-mode WWW_QUERY_STRING d=0"`;=0$ ;0 DECC$EXIT DECC$GETENV= WWW_SCRIPT_NAMEpDECC$GXFPRINTF;7DECC$GA_STDOUT=x-stream-mode=WWW_FORM_MODE= fwrite_n1=WWW_FORM_CTYPE DECC$CALLOC= fwrite(n,1)=,=WWW_FORM_FUNC=rec=0=bin =0!WWW_FORM_XPLCTWWW_GATEWAY_MRSP DECC$FPUTS=wh= ctx=rec DECC$ATOI=WWW_FORM_CHARS DECC$STRCMP=00";= H ;(CMA$TIS_VMSERRNO_GET_ADDR DECC$FREOPEN= SYS$OUTPUT: DECC$FFLUSH DECC$FWRITE= ctx=xplct@= ctx=binP=WWW_FORM_SIZE`=2048h=WWW_FORM_CTXx= fputs()= text/plain= = fwrite(1,n)= fwrite_1n=fputs= WWW_FORM_BUFFER=x-record-mode=08";=P0 7DECC$$SHELL_HANDLER= DECC$MAIN a=IA0123456789_abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ p DECC$ATOI DECC$EXIT DECC$GETENV DECC$CALLOCDECC$GA_STDOUT DECC$FWRITE DECC$FFLUSHDECC$GXFPRINTF DECC$FPUTS DECC$FREOPEN DECC$STRCMP(CMA$TIS_VMSERRNO_GET_ADDR DECC$MAIN DECC$$SHELL_HANDLER  C$AT