- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在尝试使用 c 从系统调用中删除目录,但我遇到了一个奇怪的问题。在我的deleteFunction()
之后使用char * path
打开目录。 path
的值发生变化
部分代码如下:
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
void deleteDir(char *path){
//opening the directory
printf("BEFORE %s\n",path );
DIR *p = opendir(path);
if (p == NULL){
printf("Directory not Opened!\n");
exit(2);
}
printf("AFTER %s\n",path );
}
void main(int argc,char *argv[]){
if (argc != 2){
printf("Not enough Arguments!\n");
exit(1);
}
//creating the path
char * currentDir = getcwd(NULL,0);
strcat(currentDir,"/");
strcat(currentDir,argv[1]);
//deleting the directory
deleteDir(currentDir);
exit(0);
}
产生的输出是:
BEFORE /home/tarounen/test/newfolder
AFTER /home/tarounen/test/!�
注意:我只是将目录名作为参数
最佳答案
getcwd
函数可能正在分配足够的空间来保存当前路径,因此使用 strcat
添加更多字符会使缓冲区溢出,并导致未定义的行为。试试这个
char path[MAXPATHLEN];
getcwd( path, MAXPATHLEN );
strcat( path, "/" );
strcat( path, argv[1] );
关于c - opendir() 系统调用后指向 char 的指针发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705760/
我在 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
我是一名优秀的程序员,十分优秀!