You need to understand (well) what the kernel is going to do. That's more difficult than if you call read/write yourself (because their semantics are well defined). Otoh the problem is significantly less than it was back in the day because there's really only one kernel now.