我有一个用c编写的沙箱代码.它中包含以下行:
msb.sbox.task.ofd = STDOUT_FILENO;.那是可执行文件的输出写入标准输出.我想改变它,所以输出被写入文件而不是.我试过这样做
FILE * fp;
fp=fopen("myf","w");
msb.sbox.task.ofd=fp;
Run Code Online (Sandbox Code Playgroud)
但是这给出了警告.warning: assignment makes integer from pointer without a cast [enabled by default]我怎么去做?
试试这个:
FILE * fp;
fp=fopen("myf","r");
msb.sbox.task.ofd=fileno(fp);
Run Code Online (Sandbox Code Playgroud)
STDOUT_FILENO是一个int,并且fp是指向FILE结构的指针,因此您的赋值不正确.
fileno将从int指向FILE结构的指针返回文件描述符(值),即什么fp.
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |