struct iovec is defined in <uio.h> by the following way:/* Structure for scatter/gather I/O.  */struct iovec  {    void *iov_base; /* Pointer to data.  */    size_t iov_len; /* Length of data.  */  };Now I do ugly casting from const void* to void*:int send_frame_once( int fd, const struct iovec* iov, size_t iovlen );int send_frame( int fd, const void* buffer, size_t len ){    struct iovec iov;    iov.iov_base = (void*)buffer;       /* const iov cast */    iov.iov_len  = len;    return send_frame_once( fd, &iov, 1 );}Is that necessary kludge?Or should I remove const keyword from declaration of send_frame function. Like this:int send_frame( int fd, void* buffer, size_t len )
Casting const pointer to non-const pointer when using struct iovec
c;casting
I think you should keep it. const is not only meant for the compiler, but also for anybody reading your code. Even with the void* cast, you're still saying to readers Trust me, I'm not touching your buffer! and this is a valuable information that should not be discarded.