/*************************************************************************
> File Name: object.c
> Author: TANG
> Mail: tjcmail@126.com
> Created Time: 2018年08月03日 星期五 10时32分33秒
************************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
/*对象的功能描述*/
typedef struct{
int fd;
int (*open)(char *path,int flag,unsigned int mode);
int (*write)(int fd,char *buf,int size);
void (*close)(int fd);
}file_t;
/*对象的功能实现*/
int open_file(char *path,int flag,unsigned int mode)
{
int fd = 0;
return open(path,flag,mode);
}
/*对象的功能实现*/
int write_file(int fd,char *buf,int size)
{
return write(fd,buf,size);
}
/*对象的功能实现*/
void close_file(int fd)
{
close(fd);
}
int main()
{
char *str = "hello! My object!\n";
/*创造一个对象*/
file_t tfile;
/*给对象初始化一下*/
tfile.open = open_file;
tfile.write = write_file;
tfile.close = close_file;
/*就可以用了*/
tfile.fd = tfile.open("hello.txt",O_CREAT|O_RDWR,0664);
tfile.write(tfile.fd,str,strlen(str));
tfile.close(tfile.fd);
return 0;
}