1. 程式人生 > >Linux檔案系統程式設計 系統呼叫 檔案偏移指標測試

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;
}