你不能.没有办法,你将不得不使用临时
文件.
在尝试打开文件之前,源文件readelf.c进行了这种无条件检查(至少在binutils 2.22-8中):
if (! S_ISREG (statbuf.st_mode))
{
error (_("'%s' is not an ordinary file\n"),file_name);
return 1;
}
因此,如果文件不是常规文件(如symlink,或者像/ dev / stdin,/ proc / self / fd / *等那样的char设备),它将无效.
或者,您可以修改源代码并使用修改后的objdump,但这样可以实现可移植性.