From d4fc0944526352ca3c07041b0ca6e5d195f919e0 Mon Sep 17 00:00:00 2001 From: Phil Carns Date: Mon, 23 May 2016 21:26:48 -0400 Subject: [PATCH] getw wrapper --- darshan-runtime/lib/darshan-stdio.c | 24 ++++++++++++++++++- .../share/ld-opts/darshan-stdio-ld-opts | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/darshan-runtime/lib/darshan-stdio.c b/darshan-runtime/lib/darshan-stdio.c index 8acfc77..a9d6d75 100644 --- a/darshan-runtime/lib/darshan-stdio.c +++ b/darshan-runtime/lib/darshan-stdio.c @@ -43,7 +43,7 @@ * int fscanf(FILE *, const char *, ...); DONE * int vfscanf(FILE *, const char *, va_list); DONE * int getc(FILE *); DONE - * int getw(FILE *); + * int getw(FILE *); DONE * * functions for writing data * -------------- @@ -104,6 +104,7 @@ DARSHAN_FORWARD_DECL(fflush, int, (FILE *fp)); DARSHAN_FORWARD_DECL(fwrite, size_t, (const void *ptr, size_t size, size_t nmemb, FILE *stream)); DARSHAN_FORWARD_DECL(fread, size_t, (void *ptr, size_t size, size_t nmemb, FILE *stream)); DARSHAN_FORWARD_DECL(fgetc, int, (FILE *stream)); +DARSHAN_FORWARD_DECL(getw, int, (FILE *stream)); DARSHAN_FORWARD_DECL(_IO_getc, int, (FILE *stream)); DARSHAN_FORWARD_DECL(fscanf, int, (FILE *stream, const char *format, ...)); DARSHAN_FORWARD_DECL(vfscanf, int, (FILE *stream, const char *format, va_list ap)); @@ -477,6 +478,27 @@ size_t DARSHAN_DECL(_IO_getc)(FILE *stream) return(ret); } +size_t DARSHAN_DECL(getw)(FILE *stream) +{ + int ret; + double tm1, tm2; + + MAP_OR_FAIL(getw); + + tm1 = darshan_core_wtime(); + ret = __real_getw(stream); + tm2 = darshan_core_wtime(); + + STDIO_LOCK(); + stdio_runtime_initialize(); + if(ret != EOF || ferror(stream) == 0) + STDIO_RECORD_READ(stream, sizeof(int), tm1, tm2); + STDIO_UNLOCK(); + + return(ret); +} + + int DARSHAN_DECL(fscanf)(FILE *stream, const char *format, ...) { int ret; diff --git a/darshan-runtime/share/ld-opts/darshan-stdio-ld-opts b/darshan-runtime/share/ld-opts/darshan-stdio-ld-opts index 867061f..3c1abda 100644 --- a/darshan-runtime/share/ld-opts/darshan-stdio-ld-opts +++ b/darshan-runtime/share/ld-opts/darshan-stdio-ld-opts @@ -11,5 +11,6 @@ --wrap=fscanf --wrap=vfscanf --wrap=_IO_getc +--wrap=getw --wrap=fgets --wrap=fseek -- 2.26.2