Alien-uv
    
    
  
  
  
view release on metacpan or search on metacpan
libuv/docs/src/fs.rst view on Meta::CPAN
            UV_DIRENT_BLOCK
        } uv_dirent_type_t;
        typedef struct uv_dirent_s {
            const char* name;
            uv_dirent_type_t type;
        } uv_dirent_t;
.. c:type:: uv_dir_t
    Data type used for streaming directory iteration.
    Used by :c:func:`uv_fs_opendir()`, :c:func:`uv_fs_readdir()`, and
    :c:func:`uv_fs_closedir()`. `dirents` represents a user provided array of
    `uv_dirent_t`s used to hold results. `nentries` is the user provided maximum
    array size of `dirents`.
    ::
        typedef struct uv_dir_s {
            uv_dirent_t* dirents;
            size_t nentries;
libuv/docs/src/guide/filesystem.rst view on Meta::CPAN
The discrete unit of data is the buffer -- ``uv_buf_t``. This is simply
a collection of a pointer to bytes (``uv_buf_t.base``) and the length
(``uv_buf_t.len``). The ``uv_buf_t`` is lightweight and passed around by value.
What does require management is the actual bytes, which have to be allocated
and freed by the application.
.. ERROR::
    THIS PROGRAM DOES NOT ALWAYS WORK, NEED SOMETHING BETTER**
To demonstrate streams we will need to use ``uv_pipe_t``. This allows streaming
local files [#]_. Here is a simple tee utility using libuv.  Doing all operations
asynchronously shows the power of evented I/O. The two writes won't block each
other, but we have to be careful to copy over the buffer data to ensure we don't
free a buffer until it has been written.
The program is to be executed as::
    ./uvtee <output_file>
We start off opening pipes on the files we require. libuv pipes to a file are
( run in 0.500 second using v1.01-cache-2.11-cpan-c333fce770f )