一、介绍 系统调用pread()和pwrite() 完成与read()和write类似的工作,只不过前2个会指定offset参数所指定的位置进行文件I/O操作,而非始于文件的当前偏移量处,并且不会改变文件的当前偏移量。由于进程下的所有线程将共享同一个文件描述表,所以在多线程调用pread,pwrite 可以不影响其他线程修改文件偏移量。这么一说如果看了前面的文件空洞文章的同学,那么我们是不是就可以用这些函数简单实现多线程的迅雷下载呢! #include <unistd.h>ssize_t pread(int fd, void *buf, size_t count, off_t offset);ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); pread,pwrite都是原子操作,避免了竞争! pread()相当于调用了下面: off_t orig;orig = lseek(fd,0, 54339619
linux系统调用原理,linux系统调用号
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。