Skip to content

Instantly share code, notes, and snippets.

@romuloccomp
Created November 18, 2011 02:30
Show Gist options
  • Save romuloccomp/1375392 to your computer and use it in GitHub Desktop.
Save romuloccomp/1375392 to your computer and use it in GitHub Desktop.
List file and directory in C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
char *path_cat (const char *str1, char *str2);
int main () {
struct dirent *dp;
// enter existing path to directory below
const char *dir_path="/Users/romulo/develop/mmc/";
DIR *dir = opendir(dir_path);
while ((dp=readdir(dir)) != NULL) {
char *tmp;
tmp = path_cat(dir_path, dp->d_name);
printf("%s\n", tmp);
free(tmp);
tmp=NULL;
}
closedir(dir);
return 0;
}
char *path_cat (const char *str1, char *str2) {
size_t str1_len = strlen(str1);
size_t str2_len = strlen(str2);
char *result;
result = malloc((str1_len+str2_len+1)*sizeof *result);
strcpy (result,str1);
int i,j;
for(i=str1_len, j=0; ((i<(str1_len+str2_len)) && (j<str2_len));i++, j++) {
result[i]=str2[j];
}
result[str1_len+str2_len]='\0';
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment