- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想使用 opendir
打开一个目录,但我看到了一些意外的东西。 opendir
适用于从 getcwd
返回的字符串,但不适用于我的辅助函数 read_cwd
返回的字符串,即使这些字符串看起来是相等的。
如果我打印字符串,都打印 /Users/gwg/x
,这是当前工作目录。
这是我的代码:
char real_cwd[255];
getcwd(real_cwd, sizeof(real_cwd));
/* This reads a virtual working directory from a file */
char virt_cwd[255];
read_cwd(virt_cwd);
/* This prints "1" */
printf("%d\n", strcmp(real_cwd, virt_cwd) != 0);
/* This works for real_cwd but not virt_cwd */
DIR *d = opendir(/* real_cwd | virt_cwd */);
这是read_cwd
的代码:
char *read_cwd(char *cwd_buff)
{
FILE *f = fopen(X_PATH_FILE, "r");
fgets(cwd_buff, 80, f);
printf("Read cwd %s\n", cwd_buff);
fclose(f);
return cwd_buff;
}
最佳答案
函数 fgets
包括缓冲区中的最后一个换行符——因此第二个字符串实际上是 "/Users/gwg/x\n"
。
解决这个问题的最简单(但不一定是最干净)的方法是用 '\0'
覆盖换行符:在函数 read_cwd< 的末尾添加以下内容
:
n = strlen(cwd_buff);
if(n > 0 && cwd_buff[n - 1] == '\n')
cwd_buff[n - 1] = '\0';
关于c - 为什么 opendir() 对一个字符串有效而不对另一个字符串有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27771887/
我在 C 方面并不是那么有经验,但是在我的一门课上有一个作业,而且我在打开目录时遇到了一些问题。 该计划的目的是(释义): 如果未提供标志或目录,则列出当前目录中的文件名。 如果提供了标志 (-l),
我在使用 opendir() 时收到了一些奇怪的结果: int dtw(char *path) { struct stat statbuf; ... else if (S_IS
我尝试打开另一台计算机的共享目录。这是我使用的代码。 #include #include #include int main() { DIR * rep = NULL; rep
我不知道为什么我在这个函数中不断遇到这个段错误谁能启发我如何摆脱它并使我的程序正常工作......? Lign 33:通量= opendir(路径);Lign 98 : ret = listdir(e
我在使用 C 语言中的 opendir 函数时遇到问题。代码如下: rvm 声明: rvm_t func() { rvmBlock=(rvm_t)malloc(sizeof(rvm_t));
如果调用 opendir(argv[i]) 并且 argv[i] 是 textfile 的名称,而不是目录? 最佳答案 From man opendir : Return Value The open
我想知道是否可以打开一个目录,然后使用 fopen 从中打开一个文件。就像在示例中一样: 我有一个 MAINDIR,里面有 file.txt,所以我想执行以下操作: void openFile(con
在使用 opendir() 获得 DIR * 后,我需要使用 readdir() 来读取结构 dirent 并将其存储到数组中。 为了计算出数组的大小,我可以循环遍历并计算条目数。然后,我可以分配数组
我编写这段代码来打印 /home/keep 中的所有文件,路径为: #include #include #include #include #include #include #inclu
函数 opendir() 返回一个指向目录流 DIR * 的指针,这显然是一种不透明的数据类型。实现是隐藏的。 libc manual声明您不应自己分配 DIR 对象,而应让目录函数处理分配。 在使用
我想使用 opendir() 仅列出特定文件夹(即/www/site/)中的文件夹。我想从列表中排除文件以及“。”和出现在 linux 文件夹列表中的“..”文件夹。我该怎么做呢? 最佳答案 查看 P
php opendir()函数用于打开目录,通常与readdir()和closedir()函数一起用来读取目录下所有文件(即遍历目录),本文章向大家介绍php使用opendir()函数列出目录下所有
在执行 xxx_readdir()在 fuse ,我使用以下代码: static int hello_readdir(const char *path, void *buf, fuse_fill_di
是否可以将 opendir 排序为字母顺序? $user = $fgmembersite->UserFullName(); $handle = opendir("users/$user/"); whi
所以我正在进行目录遍历,但我无法让 opendir 按照我想要的方式工作。它总是无法打开我发送的目录,它给出了一些未知的错误。我通常传入 argv[1],但我放弃了,只是开始硬编码路径。 char *
我想使用 opendir 打开一个目录,但我看到了一些意外的东西。 opendir 适用于从 getcwd 返回的字符串,但不适用于我的辅助函数 read_cwd 返回的字符串,即使这些字符串看起来是
我对 Perl 完全陌生,刚刚开始学习它。我遇到了我需要运行的这个脚本,其中包含一些网络 Tstat 跟踪数据。但是,我收到错误“无法解析日期”。 生成此代码的代码在这里 foreach my $di
一些背景: 我正在为 nginx(网络服务器)编写一个模块,允许在共享环境中即时设置根目录。我有一个包含其他目录的目录,每个托管用户一个;给定与请求域相关的目录路径,我需要确定它属于哪个用户。 --p
我是初学者,我正在编写有关获取文件目录的代码,但我有一些我不明白的地方。 DS = opendir("./");中的“./”是什么意思 我搜索了很多关于 C 编程的站点,但没有一个给我很好的解释。我必
我想检查一个目录是否存在。即使该目录不存在,我也只收到"is"。我应该怎么办?非常感谢! int main() { if(opendir("dsfdsgfdsgrs") == NULL) pri
我是一名优秀的程序员,十分优秀!