Linux:C

时间:2019-06-07 19:09:36

标签: c linux stdout

我正在尝试使用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也具有正确的输出,这给显示第二次写入带来了麻烦。

谢谢!

0 个答案:

没有答案