umueller@iiic.ethz.ch (Urban Dominik Mueller) (03/25/91)
Being only a casual SAS/Lattice C user, I just ran across a problem with the the buffering of Level 2 files. In the SAS library, stdin and stdout are unbuffered by default. The wrong choice in my opinion. Thus I tried to set the line buffered mode for those two files. After that, however, only the fputs() and fputc() functions behaved correctly. The manual announces that puts() and putc() don't work, bad enough, but they can be replaced by fputs() and fputc(). What I'm interested is printf(). I found no way to make it work, neither by #undef printf, nor by replacing it with fprintf(stdout). Here comes the non-working example: #include <stdio.h> main() { setvbuf(stdout,NULL,_IOLBF,BUFSIZ)); fprintf(stdout,"hi "); /* <-- printed immediately! */ Delay(30); fprintf(stdout,"ho\n"); } Is there anybody out there in net.land who knows a way to make this work? Additionally, does anybody know an e-mail of SAS institute? __ | Urban Mueller | / / | Urban Mueller | | INTERNET:umueller@iiic.ethz.ch | __ / / | Schulhausstr. 83 | | FIDONET: 2:302/906 (AUGL) | \ \/ / | CH-6312 Steinhausen | | "Don't tell my employer" | \__/ | SWITZERLAND |