Retourner au contenu associé (journal : C)
Posté par M le 17 avril 2004 à 00:09. En réponse au journal C. Évalué à 1.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: C
Posté par M . En réponse au journal C. Évalué à 1.
close(STDOUT_FILENO); /* amusant :
le strace donne :
close(1) = 0
write(1, "prout2\n", 7) = -1 EBADF (Bad file descriptor)
c'est marrant (l'assembleur est bon) et si on met un sleep apres le printf, ca change rien (l'attente se fait avant le close)
Par contre chez moi le prout est ecrit dans le fichier plouf....
PS le strace complet
execve("./a.out", ["./a.out"], [/* 30 vars */]) = 0
uname({sys="Linux", node="mat-pc", ...}) = 0
brk(0) = 0x804a000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=46963, ...}) = 0
old_mmap(NULL, 46963, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "177円ELF1円1円1円0円0円0円0円0円0円0円0円0円3円0円3円0円1円0円0円0円240円X1円"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1271388, ...}) = 0
old_mmap(NULL, 1281772, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40024000
old_mmap(0x40152000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12d000) = 0x40152000
old_mmap(0x4015b000, 7916, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015b000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4015d000
set_thread_area({entry_number:-1 -> 6, base_addr:0x4015d2a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 46963) = 0
open("plouf", O_WRONLY|O_CREAT|O_TRUNC, 010000713231) = 3
close(1) = 0
dup2(3, 1) = 1
close(3) = 0
write(1, "prout\n", 6) = 6
fstat64(1, {st_mode=S_IFREG|S_ISVTX|0611, st_size=6, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
close(1) = 0
write(1, "prout2\n", 7) = -1 EBADF (Bad file descriptor)
munmap(0x40018000, 4096) = 0
exit_group(0)