REMOVE(9P)

πŸ“¦ version 0_git20260208, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

πŸ¦‹ NAME πŸ¦‹

okay so bestie, this is REMOVE(9P), the page for remove β€” remove a file from a server. it’s giving β€œdelete request but make it protocol” πŸ’…βœ¨


✨ SYNOPSIS ✨

size[4] Tremove tag[2] fid[4]
size[4] Rremove tag[2]

πŸ’– DESCRIPTION πŸ’–

The remove request asks the file server both to remove the file represented by fid and to clunk the fid β€” even if the remove fails. yes, the clunk is non-negotiable, bestie 🫢. This request will fail if the client does not have write permission in the parent directory.

It is correct to consider remove to be a clunk with the side effect of removing the file if permissions allow. so like: clunk with a delete side quest, and permissions decide if the side quest actually lands ✨.

If a file has been opened as multiple fids, possibly on different connections, and one fid is used to remove the file, whether the other fids continue to provide access to the file is implementation-defined. The Plan 9 file servers remove the file immediately: attempts to use the other fids will yield a phase error. 😭 (yes, the quoted β€œphase error.” vibe). U9fs follows the semantics of the underlying Unix file system, so other fids typically remain usable. ngl that’s a whole different energy between Plan 9 and U9fs πŸŒ€.

🌸 ENTRY POINTS 🌸

  • Fsremove β€” see 9pclient(3). it generates remove messages. yes bestie, that’s the entry point, and it’s literally generating the remove messages πŸ‘‘.

sign-off, bestie: the footer is just REMOVE(9P) β€” no source/version line and no date line are included on this page πŸ’–πŸŽ€