F IPCTICKLERV1.0 3-MAR-2018 06:32 HP C V7.3-009 H SOFTWAREID $READONLY$i $CODE$ $LITERAL$0$LINK$H$DATA$0 SOFTWAREID(JMAIN0J` TICKLERFORM(J__MAIN 5=IPCTICKLER AXP-1.2.0 @6= =  #8^0[~ "0#@^4GHcGG#  (#ݶ8b@Zkb#@@BG4GHb@ZkcG8]@]HP#k///p#4G"0^~[8^@~HPX޴`hp>x^~GG#b@ZkBG4Gb@ZkG/GpB4Gb"@ZkB ,"b4G H?D////@ZkB"4Gb@Zk/B4G"b @ZkBG4G" Db@ZkBG4G"b/@ZkBG`" 4GDb/@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@Eb4GG!"@Zkp! Bb ""D@Zkp"BG" D GGb1"@Zk@BP"""KGGGHb@Zk@BP"""C GGHb@Zk  @" =G0b"DDCB""BEGC F=F>G^~GG4D0> Gp" (>b 1"/@Zk`B 4Ghb@Zk BP@4GTG(b/@Zk///@GTG@TG(B/6///5@j.@" BF =DGjJFrF/ [[/`X[((L:B @.s HTJF>. G`# x;JWJF>*/`.*Kt KS`JtF`> @J!.WJB>+TGb/@ZkGDpB G4GkGxb/@ZkL /pB4GkGGxb@ZkG`B 4Ghb@Zkp"BGTGb1"/@ZkB//+"b@Zkp"BG btG 1"@Zk/p"BTG b 1"@ZkG0]8]4G@}HPXݤ`hp=x]}#k/GPb#)@ӀB4G4Gb/@ZkBp "4Gb@Zk0BG8b@ZkB4Gb@Zk0BG8b@ZkB4Gb/@Zk0BG8b@ZkB4Gb@Zk//#4G~^@[^~ GGGP"Hb@Zk//Gp`@ "xbGa@BGG]7 H]} 0#/k///0Bp "4G8b@Zk4G\ DECC$MAIN4Lb# DECC$MAIN4X@\ DECC$MAIN4dGx DECC$EXIT4pb# DECC$EXIT4t@x DECC$EXIT4G DECC$GETENV4b# DECC$GETENV4@ DECC$GETENV4 G DECC$ATOI4  b# DECC$ATOI4 @ DECC$ATOI4(G< DECC$GETENV40b# DECC$GETENV48@< DECC$GETENV4<Gt DECC$GETENV4Lb# DECC$GETENV4p@t DECC$GETENV4tG 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$GETENV4b# DECC$GETENV4@ DECC$GETENV4  GD DECC$STRCMP40b# DECC$STRCMP4 @@D DECC$STRCMP4 DG\ DECC$STRCMP4Tb# DECC$STRCMP4 X@\ DECC$STRCMP4dG| DECC$GETENV4pb# DECC$GETENV4x@| 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$STRCMP44GL DECC$GETENV4@b# DECC$GETENV4H@L DECC$GETENV4 PGx DECC$STRCMP4`b# DECC$STRCMP4 t@x DECC$STRCMP4 xG 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$GXFPRINTF4(@,DECC$GXFPRINTF4,GT DECC$FREOPEN4Lb# DECC$FREOPEN4P@T DECC$FREOPEN4TG| DECC$FREOPEN4tb# DECC$FREOPEN4x@| DECC$FREOPEN4GDECC$GXFPRINTF4b#DECC$GXFPRINTF4@DECC$GXFPRINTF4G( DECC$FFLUSH4 b# DECC$FFLUSH4$@( DECC$FFLUSH4(GD DECC$CALLOC48b# DECC$CALLOC4@@D DECC$CALLOC4 TGt DECC$FPUTS4 hb# 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 4(GHDECC$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$GXFPRINTF4 G DECC$EXIT4 b# 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