我对Linux编程很陌生。我试图实现一个错误场景,其中32位readdir() API试图读取大于2GB的文件。
下面是这个场景
在大于2GB的大型文件上调用32位readdir。
当32位readdir试图读取大于2GB的文件时,抛出的错误消息是什么?是EOVERFLOW吗?
readdir的当前返回值是多少?它是空的吗?
int i;
FILE *fp;
DIR *dir;
struct dirent *dirp;
int errno;
dir=opendir("/home/tmp-dir"); ==> which has large files gre
尝试使用readdir($myDirectory)读取目录内容,但遇到错误:
readdir(): supplied argument is not a valid Directory resource
我用is_dir($myDirectory)检查了它是否是目录,是的,它是目录。
那么,为什么我不能读目录呢?是权限问题吗?
顺便提一下,这一切都在win xp机器上,而不是在linux上。
tnx在adv中感谢您的帮助!
$ uname -a
Linux crowsnest 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux
$ man readdir:
描述
函数返回一个指向dirent结构的指针,该指针表示目录流中由dirp指向的下一个目录项...snip...
readdir_r()函数是readdir()的可重入版本.
...snip...
返回值
成功后,readdir()返回指向dirent结构的指针。(此结构可以静态分配;不要试图释放(3)它。)如果到达目录流的末尾,则返回NULL,并没有更
我正在Ubuntu的终端上运行我的代码,用于搜索特定的文件,但是搜索会在文件夹内部和外部生成文件夹和文件。下面是代码:
(可编译和可运行)
#include <stdio.h> // For perror
#include <stdlib.h>
#include <sys/types.h> // For stat, opendir, readdir
#include <sys/stat.h> // For stat
#include <unistd.h> // For stat
#include <dirent.
当我编译这个文件时,它抛出了以下错误。
kit.c: In function ‘hide_pid’://rootkit.c:109:9: error: assignment of member ‘readdir’ in read-only kit.c:
In function ‘restore’ 127
error: assignment of member ‘readdir’ in read-only object
有人知道为什么吗?
int hide_pid(readdir_t *orig_readdir, readdir_t new_readdir)
{
struct f
作为一个练习,我想将一些使用许多syscalls的C代码翻译成Golang。我在Unix & Linux StackExchange上找到了这个StackExchange:
/*
* List directories using getdents() because ls, find and Python libraries
* use readdir() which is slower (but uses getdents() underneath.
*
* Compile with
* ]$ gcc getdents.c -o getdents
*/
#define
Linux上是否有用户空间API或第三方内核模块可以帮助通过inode访问文件?
我正在尝试实现一些类似的东西:
int read_file_by_ino(int ino, int pos, int size, char* buf);
int write_file_by_ino(int ino, int pos, int size, const char* buf);
int readdir_by_ino(...);
int stat_by_ino(...);
...
该程序预计将在root用户下运行,因此不需要进行权限检查。