// program lists the files and subdirectories within a given directory in full path
1
2
3
4
5
6
7 char *path_cat (const char *str1, char *str2);
8
9 int main () {
10 struct dirent *dp;
11
12 // enter existing path to directory below
13 const char *dir_path="/path/to/directory/to/list";
14 DIR *dir = opendir(dir_path);
15 while ((dp=readdir(dir)) != NULL) {
16 char *tmp;
17 tmp = path_cat(dir_path, dp->d_name);
18 printf("%s\n", tmp);
19 free(tmp);
20 tmp=NULL;
21 }
22 closedir(dir);
23 return 0;
24 }
25
26 char *path_cat (const char *str1, char *str2) {
27 size_t str1_len = strlen(str1);
28 size_t str2_len = strlen(str2);
29 char *result;
30 result = malloc((str1_len+str2_len+1)*sizeof *result);
31 strcpy (result,str1);
32 int i,j;
33 for(i=str1_len, j=0; ((i<(str1_len+str2_len)) && (j<str2_len));i++, j++) {
34 result[i]=str2[j];
35 }
36 result[str1_len+str2_len]='\0';
37 return result;
38 }