我有一个用c编写的沙箱代码,其中包含以下行:msb.sbox.task.ofd = STDOUT_FILENO;。将可执行文件的输出写入
标准输出。我想更改此设置,以便将输出写到文件中。
这个

  FILE * fp;
  fp=fopen("myf","w");
  msb.sbox.task.ofd=fp;

但这给出了警告warning: assignment makes integer from pointer without a cast [enabled by default]。我该怎么办?

最佳答案

试试这个:

  FILE * fp;
  fp=fopen("myf","r");
  msb.sbox.task.ofd=fileno(fp);
STDOUT_FILENOint,而fp是指向FILE结构的指针,因此您的分配不正确。fileno将返回指向int结构的指针的文件描述符(FILE值),即fp

关于c++ - 用c++中的文件指针替换stdout和stdin?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17581507/

10-13 08:20