open.c

来自「Jazmyn is a 32-bit, protected mode, mult」· C语言 代码 · 共 68 行

C
68
字号
#include <sys\types.h>
#include <callnr.h>
#include <jazmyn.h>

int open(const char* __path,int __access,mode_t __perm)
{
	int __res;
	__asm__ __volatile__("int $0x28"
					:"=a" (__res)
					:"a" (__OPEN_NR),"b" (__path),"c" (__access),"d" (__perm));
	return __res;
}

int creat(const char* __path,mode_t __perm)
{
	return open(__path,O_WRONLY|O_CREAT|O_TRUNC,__perm);
}

off_t lseek(int __fd,off_t __pos,int __whence)
{
	int __res;
	__asm__ __volatile__("int $0x28"
					:"=a" (__res)
					:"a" (__LSEEK_NR),"b" (__fd),"c" (__pos),"d" (__whence));
	return __res;
}

ssize_t read(int __fd,void *__buf,size_t __size)
{
	ssize_t __res;
	__asm__ __volatile__("int $0x28"
					:"=a" (__res)
					:"a" (__READ_NR),"b" (__fd),"c" (__buf),"d" (__size));
	return __res;
}

ssize_t write(int __fd,const void *__buf,size_t __size)
{
	ssize_t __res;
	__asm__ __volatile__("int $0x28"
					:"=a" (__res)
					:"a" (__WRITE_NR),"b" (__fd),"c" (__buf),"d" (__size));
	return __res;
}

int close(int __fd)
{
	int __res;
	__asm__ __volatile__("int $0x28":"=a" (__res):"a" (__CLOSE_NR),"b" (__fd));
	return __res;
}

int unlink(const char *__link)
{
	int __res;
	__asm__ __volatile__("int $0x28":"=a" (__res):"a" (__UNLINK_NR),"b" (__link));
	return __res;
}

int fstat(int __fd,stat *__statv)
{
	int __res;
	__asm__ __volatile__("int $0x28":"=a" (__res):"a" (__FSTAT_NR),"b" (__fd),"c" (__statv));
	return __res;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?