calloc is a library function, as opposed to a system call, so it calling memset is no different from the caller doing so.  calloc will do the write in &quot;copy on write&quot;.  Calling memset on every byte in a buffer should qualify as &quot;touching it&quot;.<p>This is why I said &quot;in user space&quot;.