"来自' FILE * {aka _iobuf}'的无效转换to' int'"错误

时间:2014-08-29 15:30:17

标签: c++ windows

我想更改以前创建的* .txt文件的大小。为此,我使用chsize。 代码:

#include <iostream>
#include <stdio.h>
#include <io.h>

using namespace std;

int main()
{
    FILE *wfile; 
    wfile = fopen("test.exe", "a");
    chsize(wfile, 1024); //error is here
    file.close();
    return 0;
}

这就是错误:

  

[错误]来自&#39; FILE * {aka _iobuf *}&#39;的无效转换到&#39; int&#39;   [-fpermissive]

问:这里有什么问题?我用fopen打开了文件,正如它在互联网中解释的那样。

Q2:我喜欢Windows作为操作系统,但我不想学习Windows API for C ++或类似的东西。有没有选择使用便携式的东西?

1 个答案:

答案 0 :(得分:3)

chsize的第一个参数是文件描述符而不是FILE *。

您可以使用&#34; fileno&#34;。

How can I convert a file pointer ( FILE* fp ) to a file descriptor (int fd)?