summaryrefslogtreecommitdiff
path: root/src/libc-verbose.h
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-04-18 16:06:36 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2018-04-18 16:06:36 +0300
commit729566b9db41a4425c26ee7fad8c5d1f48355f4c (patch)
tree8ce0fcaeb1ce51e884f3f88166c8e079e6b7ff3d /src/libc-verbose.h
parent793d5888769a7351fc699a31f6caa73bcbcbe338 (diff)
libc: stdio must be wrapped
Bionic libc does stupid stuff and defines standard streams as macros to reference of an array element. Thus we can't just point standard streams to their respective correct addresses. (Why does both glibc and bionic even expose the internal FILE structs??) So we have to wrap every function that takes FILE* as argument and mangle it with bionic_file_to_glibc_file. We can't just check addresses because gnu's libstdc++ copies the FILE*. I assume same thing happens with the c++ locale support, and we need to do more complex ctype wrapping.
Diffstat (limited to 'src/libc-verbose.h')
-rw-r--r--src/libc-verbose.h20
1 files changed, 0 insertions, 20 deletions
diff --git a/src/libc-verbose.h b/src/libc-verbose.h
index 190f0b1..2d46f17 100644
--- a/src/libc-verbose.h
+++ b/src/libc-verbose.h
@@ -144,26 +144,6 @@ bionic_unlink(const char *path)
return unlink(path);
}
-size_t
-bionic_fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
-{
- char buf[256], fname[256] = {0};
- snprintf(buf, sizeof(buf), "/proc/self/fd/%d", fileno(stream));
- readlink(buf, fname, sizeof(fname));
- verbose("%s (%d)\n%p, %zu, %zu, %p", fname, fileno(stream), ptr, size, nmemb, (void*)stream);
- return fread(ptr, size, nmemb, stream);
-}
-
-size_t
-bionic_fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream)
-{
- char buf[256], fname[256] = {0};
- snprintf(buf, sizeof(buf), "/proc/self/fd/%d", fileno(stream));
- readlink(buf, fname, sizeof(fname));
- verbose("%s (%d)\n%p, %zu, %zu, %p", fname, fileno(stream), ptr, size, nmemb, (void*)stream);
- return fwrite(ptr, size, nmemb, stream);
-}
-
char*
bionic_getenv(const char *name)
{