我正在尝试使用C中的程序在Linux中执行 write()到stdout。
我遇到的问题是,在 execlp()函数之前可以这样做,但是在我尝试使用 execlp()以十六进制格式显示文件之后,在某种程度上不理解输出,因此无法编写任何东西。
这是我正在使用的代码:
int main(int argc, const char* const argv[])
{
if(write(1, "OKAY", sizeof("OKAY")) == -1)
{
errx(1, "NOT OKAAY");
}
if(execlp("hexdump", "hexdump", "-v", "-e" , "/1 \"%04X\n\"", argv[1], (char*) NULL) == -1)
{
errx(1, "Unsuccessfull execlp");
}
if(write(1, "OKAY", sizeof("OKAY")) == -1)
{
errx(1, "NOT OKAAY");
}
因此,第一次写入工作正常,然后execlp也具有正确的输出,这给显示第二次写入带来了麻烦。
谢谢!