_splitpath in Linux

2019-01-26 04:14发布

Is there a Linux equivalent of the Win32 API _splitpath function?
Details:

void _splitpath (
   const char *path,  // Path Input
   char *drive,       // Drive     : Output
   char *dir,         // Directory : Output
   char *fname,       // Filename  : Output
   char *ext          // Extension : Output
);

It takes full path as input and gives drive, directory, filename and extension as output.

3条回答
Lonely孤独者°
2楼-- · 2019-01-26 04:41

Use dirname() and basename().

查看更多
等我变得足够好
3楼-- · 2019-01-26 05:00

Not that I'm aware, no. What I'd do is:

  • Run the path through realpath(), to make it canonical
  • Just split it on the directory separator, i.e. the / character
查看更多
劫难
4楼-- · 2019-01-26 05:03
登录 后发表回答