File: basename.c

package info (click to toggle)
c-cpp-reference 2.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 8,012 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 115; java: 77; awk: 34; csh: 9
file content (51 lines) | stat: -rw-r--r-- 1,072 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/************************************************************************
 * 
 * Purpose: Extract the directory information from a file name.
 *
 *          /etc/local/bin/fdmount --> fdmount
 *
 *          This mimics the unix command 'basename'.
 *
 * Author:  M J Leslie
 * Date:    29-Feb-96
 *
 ************************************************************************/

#include <string.h>

char *basename(const char *FullName);

main()
{
    char *FullName = "/usr/local/bin/fdmount";

    printf("Full name is %s \n", FullName);

    printf("File name is %s \n", basename(FullName));
}

/************************************************************************/

char *basename(const char *FullName)
{
    static char *File;

    /* ...        I guess DOS users will have to change the direction of
       ...        the slash. */

    File = strrchr(FullName, '/');

    /* ...        If no slashes have been found, Return the full file name */

    if (File == NULL)
    {
        File = FullName;
    }
    else
    {
        File++;
    }

    return(File);
}