【发布时间】:2014-10-13 20:05:27
【问题描述】:
好的,所以我正在尝试将当前目录目录的所有文件列出到 C 中的字符串。 当前目录下的文件有:
myftpclient.c、myftpclient.o、myftpserver.c、myftpserver.o
char * list(void)
{
DIR *dp; // directory var
struct dirent *ep;
char str[256] ;
int n = 0 ;
dp = opendir ("./");
if (dp != NULL)
{
while ((ep = readdir (dp)))
{
int curLen = strlen((ep->d_name)) ;
strncat(str, (ep->d_name), curLen) ;
strncat(str, "\n", 1) ;
n += curLen + 1 ;
}
str[n] = '\0' ;
(void) closedir (dp);
}
else
perror ("Couldn't open the directory");
return str ;
}
这是我的呼唤:
char * str = malloc(256) ;
str = list() ;
我打印字符串时的输出是:
B0
这甚至不接近正确。我究竟做错了什么?
【问题讨论】:
-
其他程序是什么?像c,bash等?以及它根本不起作用,与其他程序什么?
-
您必须考虑到这不是代码审查服务。请编辑您的问题,说明您用作输入的内容(目录中的内容)、作为输出的内容以及您认为可能存在的问题。如果你帮助别人帮助你,那么你很可能会得到一些好的答案。事实上,一个简单的函数包装器可能会让包括你自己在内的其他人很容易看到正在发生的事情。
-
我编辑了我的问题以使其更加清晰。另一个程序也是一个 C 程序,但我不应该提到它,这无关紧要,我正在这个程序中测试结果。
-
也许管道到另一个程序,嗯,所以你得到它到另一个程序还是没有?