这是我用 C 语言完成的一个非常简单的程序,并且工作正常,但我不懂一些术语:
而不是list[list_size] = strdup(file)
我这样做:
char*test=file
和strcpy(list[list_size],test)
。我得到分段错误。char*test=malloc(sizeof(char)*MAX_FILENAME_LEN+1)
和test=file
和strcpy(list[list_size],test)
。我得到分段错误。甚至
strcpy(list[list_size],file)
。我得到分段错误。# include < stdio.h > # include < string.h > # define MAX_LIST_SIZE 1000 # define MAX_FILENAME_LEN 128 int main() { FILE * infile; char * list[MAX_LIST_SIZE], file[MAX_FILENAME_LEN + 1]; size_t list_size = 0; infile = popen("ls", "r"); if (infile != NULL) { while ((list_size < MAX_LIST_SIZE) &&(fscanf(infile, "%s", file) == 1)) { list[list_size] = strdup(file); list_size++; puts(file); } } pclose(infile); return 0;
}
如果有人可以提供帮助,那就太好了。