Como obter um ponteiro para o início de um arquivo em C ++

votos
1

É possível em C ++ de alguma forma obter um ponteiro para o início de um arquivo aberto para que ele (o ponteiro) pode ser passado para a função de gravação unix junto com o tamanho do arquivo?

Só para ficar claro: eu quero passar todo o arquivo para uma função write-like - como posso fazer isso?

Publicado 27/08/2009 em 07:39
fonte usuário
Em outras línguas...                            


2 respostas

votos
4

sendfile () é especificamente para esta finalidade em plataformas POSIX ao enviar através da rede, e o kernel lida com as complexidades de fazê-lo.

Respondeu 27/08/2009 em 07:58
fonte usuário

votos
4

Você pode apenas mmap()o arquivo completo, e, em seguida, passar este ponteiro para escrever. Você vai ter que abri-lo usando o open(), não fopen()embora.

Respondeu 27/08/2009 em 07:45
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more