Skip to content

Instantly share code, notes, and snippets.

@grooverdan
Created March 20, 2017 10:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grooverdan/a9ba797139d0644d0a31b52f7cd452b1 to your computer and use it in GitHub Desktop.
Save grooverdan/a9ba797139d0644d0a31b52f7cd452b1 to your computer and use it in GitHub Desktop.
$ cat ~/fdmain.c
#include <unistd.h>
#include <stdio.h>
int main()
{
FILE *newstdout;
newstdout = freopen("/tmp/xx.txt", "w", stdout);
fprintf(stdout, "hi\n");
}
$ gcc ~/fdmain.c -o ~/freopen
$ strace ~/freopen
execve("/home/dan/freopen", ["/home/dan/freopen"], [/* 46 vars */]) = 0
brk(NULL) = 0x8e8000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb7f7904000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=220512, ...}) = 0
mmap(NULL, 220512, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb7f78ce000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \5\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2115824, ...}) = 0
mmap(NULL, 3955040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb7f731b000
mprotect(0x7fb7f74d8000, 2093056, PROT_NONE) = 0
mmap(0x7fb7f76d7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bc000) = 0x7fb7f76d7000
mmap(0x7fb7f76dd000, 14688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb7f76dd000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb7f78cc000
arch_prctl(ARCH_SET_FS, 0x7fb7f78cc700) = 0
mprotect(0x7fb7f76d7000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ) = 0
mprotect(0x7fb7f7906000, 4096, PROT_READ) = 0
munmap(0x7fb7f78ce000, 220512) = 0
open("/tmp/xx.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup3(3, 1, 0) = 1
close(3) = 0
fstat(1, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
brk(NULL) = 0x8e8000
brk(0x90a000) = 0x90a000
brk(NULL) = 0x90a000
write(1, "hi\n", 3) = 3
exit_group(0) = ?
+++ exited with 0 +++
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment