nckernel  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dirname.c
Go to the documentation of this file.
1 #include <sys/types.h>
2 #include <stdio.h>
3 #include <stddef.h>
4 #include <limits.h>
5 #include <libgen.h>
6 
7 char *dirname(char *s)
8 {
9  static char ret[PATH_MAX];
10  int sep;
11  int i;
12 
13  sep = 0;
14  for (sep = i = 0; s[i]; i++) {
15  if (s[i] == '/' && s[i+1] != '\0') {
16  sep = i;
17  }
18 
19  ret[i] = s[i];
20  }
21 
22  if (sep) {
23  ret[sep] = '\0';
24  } else {
25  if (i > 1 && (s[0] != '/' || s[1] != '\0')) {
26  ret[0] = '.';
27  }
28 
29  ret[1] = '\0';
30  }
31 
32  return ret;
33 }
34 
35 /* End of a file */