作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文件 exmpl.cpp,其中包含下一个代码(来自 here ):
#include <sys/io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
void main( void )
{
int fh, result;
unsigned int nbytes = BUFSIZ;
/* Open a file */
if( (fh = open( "data", O_RDWR | O_CREAT, S_IREAD
| S_IWRITE )) != -1 )
{
printf( "File length before: %ld\n", filelength( fh ) );
if( ( result = chsize( fh, 329678 ) ) == 0 )
printf( "Size successfully changed\n" );
else
printf( "Problem in changing the size\n" );
printf( "File length after: %ld\n", _filelength( fh ) );
close( fh );
}
}
尝试使用g++ exmpl.cpp -o exmpl
编译它并得到:
exmpl.cpp:18:60: error: ‘_filelength’ was not declared in this scopeexmpl.cpp:19:43: error: ‘chsize’ was not declared in this scope
是否有与这些功能类似的替代功能?
非常感谢。
最佳答案
问题在于 _filelength
是仅限 Windows 的函数。
在 Linux/Mac 中,您可以使用 stat
来解决任务:
#include <sys/stat.h>
long file_length(char *f)
{
struct stat st;
stat(f, &st);
return st.st_size;
}
关于更改文件大小。函数 chsize
也不是 Linux 函数,但您可以使用 ftruncate
完成这项工作。
关于c - _filelength 和 chsize 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424852/
我有一个文件 exmpl.cpp,其中包含下一个代码(来自 here ): #include #include #include #include #include #include vo
我正在使用低级 io 函数来获取文件的字节大小并将其写入标准输出。我使用的是 windows 7 64bit,我使用的是 visual studio 2017,x64 Debug模式。函数 _file
我是一名优秀的程序员,十分优秀!