pathname
Path Manipulation Utilities
Functions
| Function | Description |
|---|---|
pn_copy | Internal: copy bytes from src to dst. |
pn_dirname | Get directory portion of path. Returns length written to out. “/usr/bin/gcc” … |
pn_extname | Get file extension including dot. Returns length written to out. “foo.tar.gz”… |
pn_is_absolute | Check if path is absolute (starts with /). |
pn_normalize | Normalize path: resolve . and .. components, collapse multiple slashes. Retur… |
pn_split_ext | Split path into stem and extension. Returns stem length. “archive.tar.gz” -> … |
pn_join3 | Join 3 path segments: a/b/c. Returns length written to out. |
pn_has_ext | Check if path has given extension. Case-sensitive. |
Details
pn_copy
fn pn_copy(dst: &i8, doff: i64, src: &i8, soff: i64, n: i64)Internal: copy bytes from src to dst.
pn_dirname
fn pn_dirname(path: &i8, len: i64, out: &i8) -> i64Get directory portion of path. Returns length written to out. “/usr/bin/gcc” -> “/usr/bin”, “foo.txt” -> “.”, “/” -> “/”
pn_extname
fn pn_extname(path: &i8, len: i64, out: &i8) -> i64Get file extension including dot. Returns length written to out. “foo.tar.gz” -> “.gz”, “Makefile” -> "" (returns 0)
pn_is_absolute
fn pn_is_absolute(path: &i8) -> i64Check if path is absolute (starts with /).
pn_normalize
fn pn_normalize(path: &i8, len: i64, out: &i8) -> i64Normalize path: resolve . and .. components, collapse multiple slashes. Returns length written to out.
pn_split_ext
fn pn_split_ext(path: &i8, len: i64, stem: &i8, ext: &i8) -> i64Split path into stem and extension. Returns stem length. “archive.tar.gz” -> stem=“archive.tar”, ext=".gz"
pn_join3
fn pn_join3(a: &i8, al: i64, b: &i8, bl: i64, c: &i8, cl: i64, out: &i8) -> i64Join 3 path segments: a/b/c. Returns length written to out.
pn_has_ext
fn pn_has_ext(path: &i8, len: i64, ext: &i8, elen: i64) -> i64Check if path has given extension. Case-sensitive.