新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


programing:linux-programing:file-splitpath-parse


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
programing:linux-programing:file-splitpath-parse [2020/07/01 10:30] – [コンパイル実行] yokoprograming:linux-programing:file-splitpath-parse [2020/07/01 10:46] yoko
行 62: 行 62:
  * @brief  Parse a file elements from a string.  * @brief  Parse a file elements from a string.
  * @author T.Yokobayashi de JR4QPV  * @author T.Yokobayashi de JR4QPV
- * @date   2020/06/28+ * @date   2020/07/01
  */  */
  
行 84: 行 84:
     各要素は、解析結果のポインタ位置から抽出する。     各要素は、解析結果のポインタ位置から抽出する。
   - 各要素は以下で抽出できる。\n   - 各要素は以下で抽出できる。\n
-     ディレクトリ名:*dirpos ~ *basepos (最後必ず'/') \n+     ディレクトリ名:*dirpos ~ *basepos (通常は'/'で終わる)\n
      ベース名:      *basepos 以降 \n      ベース名:      *basepos 以降 \n
      ファイル名:    *basepos ~ *extpos \n      ファイル名:    *basepos ~ *extpos \n
      拡張子:        *extpos 以降 ('.'で始まる)      拡張子:        *extpos 以降 ('.'で始まる)
  *  *
 + * @note
 +  - "."と".."はディレクトリ名に判断し、この時は'/'で終わらない。
  * @attention  * @attention
   - マルチバイト文字には非対応。(UTF-8ならたぶん大丈夫)   - マルチバイト文字には非対応。(UTF-8ならたぶん大丈夫)
行 115: 行 117:
  if (dname[0] == '/') /* '/'で始まるか ? */  if (dname[0] == '/') /* '/'で始まるか ? */
  flg |= FLG_ABSPATH;  flg |= FLG_ABSPATH;
 + }
 + else if ((strcmp(dname, ".") == 0) || (strcmp(dname, "..") == 0)) {
 + /* dirname要素あり */
 + n = strlen(dname);
 + bname = &dname[n];
 + flg |= FLG_DIRNAME;
  }  }
  
programing/linux-programing/file-splitpath-parse.txt · 最終更新: 2020/07/01 10:48 by yoko