推 fuha:這個範例 好像沒有 free() 04/12 14:49
※ 引述《mayasky ( )》之銘言:
: ※ 引述《mayasky ( )》之銘言:
: : 標題: [問題] 關於sys call-open() read() write()..
: : 時間: Thu Nov 16 00:26:04 2006
: : 由於我需要低階直接存取功能,我不使用C的LIB去做檔案操作
: : 我直接用open與read.write
: : 但始終有Illegal seek
: : 但是檔案又寫的進去讀得出來(在不同程式)
: : --
: : ◆ From: 140.114.71.192
: : → qrtt1:有沒有範例能看 :P 11/16 11:06
: 殘念,由於安全問題,新的KERNEL都不准open配上O_DIRECT了,
抱歉各位,以上那句話需要修正,是可以用的,只是要多加點東西
CODE在試驗中東改西改,有點亂請包涵
=====================read================================
#include <stdio.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <asm/fcntl.h>;
#include <unistd.h>;
#define _XOPEN_SOURCE 600
#include <stdlib.h>;
//int posix_memalign(void **memptr, size_t alignment, size_t size);
// #include <fcntl.h>
typedef struct _pp
{
char name[10];
int high;
}pp;
main()
{
int fd;
int i, r;
pp *bp;
r = posix_memalign(&bp, 512, sizeof(pp));
//要設定這個才可用O_DIRECT,但我不是很明確知道用法
printf("r = %d\n", r);
fd = open("/raid/data", O_CREAT | O_RDWR | O_DIRECT, 0644);
//posix_fadvise(fd,0,0,1);
printf("fd = %d\n", fd);
r = read(fd, bp, 512);
printf("name: %s high: %d\n",bp->name,bp->high);
close(fd);
}
===============================write===========================
暫時找不到是哪個檔了..眼花XD~稍晚補上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.71.192