31 lines
		
	
	
		
			383 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			383 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
basename.c
 | 
						|
*/
 | 
						|
 | 
						|
#include <libgen.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
char *basename(path)
 | 
						|
char *path;
 | 
						|
{
 | 
						|
	size_t len;
 | 
						|
	char *cp;
 | 
						|
 | 
						|
	if (path == NULL)
 | 
						|
		return ".";
 | 
						|
	len= strlen(path);
 | 
						|
	if (len == 0)
 | 
						|
		return ".";
 | 
						|
	while (path[len-1] == '/')
 | 
						|
	{
 | 
						|
		if (len == 1)
 | 
						|
			return path;	/* just "/" */
 | 
						|
		len--;
 | 
						|
		path[len]= '\0';
 | 
						|
	}
 | 
						|
	cp= strrchr(path, '/');
 | 
						|
	if (cp != NULL)
 | 
						|
		return cp+1;
 | 
						|
	return path;
 | 
						|
}
 |