Pode splice () / tee () ser feito para trabalhar com soquetes, e não apenas tubos?

5

No Linux, o sistema chama splice (2) e tee (2) são usados para transferir dados entre dois descritores de arquivos. Um ou ambos os descritores de arquivo devem ser um pipe, de acordo com a documentação. Por quê? Isso pode ser feito para trabalhar com soquetes? Funciona atualmente ou seriam necessárias modificações no kernel?

    
por robinbb 18.03.2011 / 22:01

1 resposta

1

Agora eles apenas juntam buffers de cano juntos; buffers de soquete (no Linux) são animais diferentes e arrastam a rede do kernel para ele. Limitá-lo a AF_LOCAL sockets simplificaria a implementação ao custo de complicar a validação - e você provavelmente ainda precisa lidar com eles sendo alocados e mapeados via subsistema de gerenciamento de buffer de rede em vez de buffers de arquivos anônimos.

    
por 18.03.2011 / 22:13

Tags