我试图在sparc32上运行一些简单的汇编器代码,但它不会写入标准输出,无论使用ta 0x00还是ta 0x08都会出现问题:
# as -s gah.s -o gah.o
# ld gah.o -o gah -lc
# ./gah
#
# truss ./gah
execve("./gah", 0xEFFFFE28, 0xEFFFFE30) argc = 1
[..]
open("/usr/platform/SUNW,SPARCstation-20/lib/libc_psr.so.1", O_RDONLY) Err#2 ENOENT
close(3) = 0
write(1, " H e l l o , W o r l d".., 14) = 14
_exit(0)
# file gah
gah: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
# echo foo > /dev/fd/1
foo
# uname -a
SunOS foobar 5.6 Generic_105181-05 sun4m sparc SUNW,SPARCstation-20
gcc version 2.95.2 19991024 (release)这会不会是与链接器相关的问题?我似乎在truss输出中看到了一个写入。
dis输出:http://sprunge.us/hMXV
发布于 2012-11-08 07:10:35
如果使用look under the covers,您将看到stdout只是一个引用文件描述符号1的标准文件描述符。
换句话说,当您写入stdout时,您将看到一个指向文件描述符1的OS调用。
https://stackoverflow.com/questions/13203332
复制相似问题