以前也寫過分析程序運行路徑的博文http://blog.csdn.net/qiuyeting/article/details/7305077,但今天偶然發現有更好的函數可以幫助我們分析路徑參數。這個函數就是_splitpath。
函數原型:
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext );參數含義:
- path
-
Full path buffer. _makepath does not check that path does not exceed _MAX_PATH.
- drive
-
Drive letter.
- dir
-
Directory path.
- fname
-
File name.
- ext
-
File name extension.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main( void )
{
char path_buffer[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
//獲取當前運行程序的完整路徑,賦值給path_buffer
strcpy(path_buffer,__argv[0]);
_splitpath( path_buffer, drive, dir, fname, ext );
// Note: _splitpath is deprecated; consider using _splitpath_s instead
printf( "Path extracted with _splitpath:\n" );
printf( " Drive: %s\n", drive );
printf( " Dir: %s\n", dir );
printf( " Filename: %s\n", fname );
printf( " Ext: %s\n", ext );
return 0;
}
運行結果: