GLOBUS_XIO_FILE_DRIVER_IO(3)

πŸ“¦
version 6.6 Β· 5 versions
, in epel 10, fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

✨ NAME ✨

globus_xio_file_driver_io β€” reading & writing, bestie πŸ’–

🌸 SYNOPSIS 🌸

Detailed Description

Reading/Writing. That's the whole vibe. ✨


okay so both globus_xio_register_read() and globus_xio_register_write() follow the same semantics, and here's the tea πŸ‘‡

  • If the waitforbytes parameter is greater than zero, the io happens asynchronously and gets completed when at least waitforbytes has been read/written. πŸ’…
  • If the waitforbytes parameter is equal to zero, one of these alternative behaviors kicks in instead:
    • If the length of the buffer is > 0, the read or write happens synchronously. And if you're using one of the blocking xio calls, no internal callback will occur. no cap. 🫢
    • If the length of the buffer is also 0, the call behaves like an asynchronous notification of data ready to be either read or written β€” i.e., an asynchronous select(). it's giving "hey bestie, something's ready" 🌈
In any case, when an error or EOF occurs before the waitforbytes request has been met, the outgoing nbytes is set to the amount of data actually read/written before the error or EOF occurred. 😭 important!!

So how do you position the file pointer, you ask? Obsessed that you asked. You have two options:

  1. Use GLOBUS_XIO_FILE_SEEK or GLOBUS_XIO_SEEK to position the file pointer before each read or write, or
  2. Specify the desired offset on a data descriptor with the xio cmd GLOBUS_XIO_DD_SET_OFFSET.
⚠️ Heads up bestie: simultaneous reading and writing is only predictable if the data descriptor method is used. periodt. πŸ’€

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for globus_xio from the source code. πŸ€–βœ¨


that's the whole page, love you, bye!! πŸŽ€πŸ¦‹πŸ’œ

this was globus_xio β€” Version 6.6, and the page is globus_xio...e_driver_io(3), mwah πŸ’…πŸŒΈ

πŸ“¦ where this page comes from