“簡述: pread/pwrite 接口
參考: http://blog.chinaunix.net/uid-28852942-id-3652277.html
我們建立了一個檔案test 内容為“123456789”
- 程式先先練兩次調用read(),每次讀取三個位元組
-
程式先調用pread()在離檔案頭五個位元組出讀3資料,然後在調用
read()讀取三個位元組。
a程式為:
fd=open("test",O_RDONLY);
read(fd,buf,);
buf[]='\0';
printf("%s\n",buf);
read(fd,buf,);
buf[]='\0';
printf("%s\n",buf);
輸出為:
123
456
b程式為:
fd=open("test",O_RDONLY);
pread(fd,buf,,);
buf[]='\0';
printf("%s\n",buf);
read(fd,buf,);
buf[]='\0';
printf("%s\n",buf);
輸出為:
678
123
結論:
從輸出我們可以很清楚的看出。pread()調用并不會改變檔案指針。
pread/pwrite 不會改變目前檔案的偏移量,是原子操作.