splice_direct_to_actor(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… splice_direct_to_actor(9) πŸ’…

okay so real talk, this is a page from the Kernel API Manual and it's genuinely one of the slayest little helpers in ./fs. bestie, let's get into it 🫢


✨ NAME ✨

splice_direct_to_actor β€” splices data directly between two non-pipes πŸ”₯

like, no pipe in the middle. none. zero. we don't need it. iconic behavior honestly.


πŸŽ€ SYNOPSIS πŸŽ€

ssize_t splice_direct_to_actor (struct file *in , struct splice_desc *sd
, splice_direct_actor *actor );

literally the whole signature right there, copy it exactly, don't touch it πŸ’…


🌸 ARGUMENTS 🌸

  • in β€” the file we're splicing from, i.e. our source file, the main character of this operation πŸ‘‘
  • sd β€” the actor information on where to splice to β€” this is the "where we're going bestie" struct πŸ’–
  • actor β€” the thing that actually handles the data splicing, the one doing the work fr fr 🧚

πŸ¦‹ DESCRIPTION πŸ¦‹

so this is a special case helper ✨ β€” it exists to splice directly between two points without requiring an explicit pipe. no pipe, no problem, we're going point-to-point 🌈

but here's the juicy internal detail: internally, an allocated pipe is cached in the process, and it gets reused during the lifetime of that process. so like... the pipe is there, it's just not your pipe, it's the process's pipe, and it's chilling in the cache the whole time 😭 lowkey efficient ngl


⭐ SEE ALSO ⭐

all the siblings, the whole friend group, in ./fs/splice.c:

go read them all, i'll wait πŸ’œ


πŸ“ tiny heads up bestie: this whole page lives under the ./fs source, and it's dated October 2026 in the Kernel API Manual. that's the version tag, that's the date, no cap. mwah, bye πŸ’‹

slay, you now understand splice_direct_to_actor(9). periodt. ✨

πŸ“¦ where this page comes from