![]() | ||||||||||
Messages in this thread |
Antonio, > Maybe "ssize_t psplice(int fdin, int fdout, size_t len, off_t > fdin_ofs, unsigned flags);" yep, thats clearer I think ideally splice() would just be changed to always take a off_t as the interface is so new hopefully no apps depend on it yet. Then we don't need psplice(). A while ago we got bitten with tdb in Samba and systems that only have write(), and no pwrite(). If a process forks then accesses the db in both parent and child the shared seek pointer semantics of inherited file descriptors causes races with seek/write. It would be nice if splice() was immune from this from the start. If people want it both ways, then an alternative would be to have a SPLICE_FLAG_OFS_CURRENT flag to splice(), which would tell splice() to ignore the off_t and use the current seek ptr. I guess that would save some book keeping for some apps that know they don't have any seek races and want to always write at the current position. I wouldn't need this, but some people might find it convenient. > would be better at documenting that the offset is for the input? Or > maybe adding also a fdout_ofs for when fdout is also a file... I thought about that, but Stephen convinced me it was a bad idea, as the semantics with whats in the pipe buffer at any one time gets too messy if the output is a socket. I guess you could return -EINVAL if you used the fdout_ofs and its not a seekable file, but that seems to be overloading the system call too much for my liking. Cheers, Tridge - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2006-03-31 07:39 [from the cache] ©2003-2008 | ||||||||||