📄 mytest.c
字号:
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
# include <fcntl.h>
#include <linux/ioctl.h>
# define OK 1
# define ERROR 0
#define MEM_IOC_MAGIC 'M'
#define MEM_IOC_SETSIZE _IO(MEM_IOC_MAGIC, 0)
#define MEM_IOC_PRINT _IO(MEM_IOC_MAGIC, 1)
#define MEM_IOC_GETOFFSET _IOR(MEM_IOC_MAGIC,2,long)
typedef struct
{
int fnode;
}MyMem;
int MyMemPrint(MyMem *mem)
{
ioctl(mem->fnode,MEM_IOC_PRINT,NULL);
return OK;
}
int MyMemSetSize(MyMem *mem, long size)
{
ioctl(mem->fnode,MEM_IOC_SETSIZE,size);
return OK;
}
long MyMemGetOffset(MyMem *mem)
{
long o=0;
ioctl(mem->fnode,MEM_IOC_GETOFFSET,&o);
return o;
}
int MyMemOpen(MyMem *mem,char *fn)
{
mem->fnode=open(fn,O_WRONLY);
if(mem->fnode==0)
{
printf("Open error\n");
return ERROR;
}
return OK;
}
int MyMemClose(MyMem *mem)
{
close(mem->fnode);
return OK;
}
int MyMemPuts(MyMem *mem,char *str)
{
int l=strlen(str);
long t;
write(mem->fnode,str,l,&t);
return OK;
}
int main(int argc, char *argv[])
{
MyMem mem;
MyMemOpen(&mem,"/dev/skeleton");
MyMemSetSize(&mem,512);
MyMemPuts(&mem,"Hello World!\n");
MyMemPrint(&mem);
printf("ok my offset=%ld\n",MyMemGetOffset(&mem));
MyMemClose(&mem);
return OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -