代码之家  ›  专栏  ›  技术社区  ›  Vi.

确定我可以在文件句柄中写入多少;将数据从一个FH复制到另一个FH

  •  2
  • Vi.  · 技术社区  · 15 年前

    如何确定是否可以将给定的字节数写入文件句柄(实际上是套接字)?(或者,如何“未读”从其他文件句柄读取的数据?)

    我想要这样的东西:

    n = how_much_can_I_write(w_handle);
    n = read(r_handle, buf, n);
    assert(n==write(w_handle, buf, n));
    

    两个文件句柄(r_handle和w_handle)都已从epoll_wait接收到就绪状态。

    一般来说,如何简单可靠地将数据从一个文件句柄复制到另一个文件句柄?

    @相关的 How can I "interconnect" two sockets in Linux?

    2 回复  |  直到 8 年前
        1
  •  0
  •   anon anon    15 年前

    你不能这样做-一旦数据被写入,它就被写入-操作是不可逆的或预先可预测的。你需要重新考虑你的程序逻辑。

        2
  •  0
  •   Douglas Leeder    15 年前

    我不认为有任何接口允许你访问这些信息,而且一旦你得到了这些信息,它就会过时。

    无论如何,您需要有一个缓冲区来执行读/写循环,所以为写债务保留缓冲区应该是一个很大的问题?