Linux檔案系統程式設計 系統呼叫 檔案偏移指標測試
測試1:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define SIZE 1024
int main()
{
// 開啟要讀的檔案
int fd = open("big", O_RDWR|O_CREAT, 0777);
if (fd == -1)
{
perror ("open fd1");
return -1;
}
printf ("%d\n", fd);
// 設定這個檔案的偏移指標到 1G處
lseek (fd, 20, SEEK_SET);
printf ("等待2寫資料\n");
getchar();
char *buf = "hello";
write (fd, "a", 1);
getchar();
close (fd);
return 0;
}
測試2:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define SIZE 1024
int main()
{
// 開啟要讀的檔案
int fd1 = open("abc", O_RDWR|O_CREAT, 0777);
if (fd1 == -1)
{
perror ("open fd1");
return -1;
}
printf ("abc fd = %d\n", fd1);
int fd = open("big", O_RDWR|O_CREAT, 0777);
if (fd == -1)
{
perror ("open fd1");
return -1;
}
printf ("bif fd = %d\n", fd);
// 設定這個檔案的偏移指標到 1G處
lseek (fd, 10, SEEK_SET);
char *buf = "12345";
write (fd, buf, strlen(buf));
getchar();
close (fd);
return 0;
}