我正在尝试学习Linux API,但是一些函数名称(至少对我来说)似乎很繁琐。
有人能解释一下pwrite / pread中的首字母p代表什么吗?
我只是猜测,但由于pread()
和pwrite()
在文件中读取或写入指定的位置,我认为这里的“p”代表“定位”,也就是“定位读取”。
无论是read()
还是pread()
都是POSIX标准的一部分(例如参见http://www.unix.com/man-page/POSIX/3posix/pread/),因此我不认为“p”代表“POSIX”。
但也许我的想法完全错误!
p在pread和pwrite中指的是POSIX。
与读和写相比,“p”变体的两个区别是:
pread()
函数应当等同于read()
,除了它可以在不改变文件指针的情况下从给定位置读取文件。pread()
的前三个参数与read()
相同,但增加了第四个参数offset,用于指定文件中所需读取的位置。如果尝试对无法寻址的文件执行pread()
操作,则会导致错误。 - This isn't my real namepwrite()
函数与write()
函数等效,除了它写入给定位置并且不改变文件偏移量(无论是否设置O_APPEND)。pwrite()
的前三个参数与write()
相同,另外还有第四个参数offset表示所需写入文件中的位置。在无法寻找的文件上执行pwrite()
的尝试将导致错误。 - This isn't my real name
p
代表“position”,因为pread
从给定位置读取数据。如果p
代表 POSIX,那么为什么其他无数的 POSIX 函数没有这个前缀呢? - P.Pp
**是一个魔法词,意思是“请”。如果标准函数func()
返回错误,请尝试调用pfunc()
变体。 :P - TheCodeArtist