⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kos_fake_func.c

📁 DC的SEGA_GG模拟器源代码
💻 C
字号:
#include <stdio.h>
#include <kallisti/abi/fs.h>

extern abi_fs_t *fs;

typedef unsigned int FILE;

FILE * fopen(const char *path, const char *mode)
{
    if (mode[0] == 'r')
	return (FILE *)fs->open(path, O_RDONLY);
    if (mode[0] == 'w')
	return (FILE *)fs->open(path, O_WRONLY);
}

int fprintf(FILE *stream, const char *fmt, ...)
{
    va_list args;
    int i;
    char buf[1024];

    if (stream <= 2) {
	va_start(args, fmt);
	i = vsprintf(buf, fmt, args);
	va_end(args);
	
	printf("%s", buf);
	
	return i;
    } else
	return -1;
}

int fclose(FILE *stream)
{
    fs->close((unsigned int)stream);
    return 0;
}

unsigned int fread(void *ptr, unsigned int size, unsigned int nmemb, FILE *stream)
{
    return fs->read((unsigned int)stream, ptr, size*nmemb)/size;
}

unsigned int ftell (FILE *stream) {
    return fs->tell((unsigned int)stream);
}

unsigned int fwrite(void *ptr, unsigned int size, unsigned int nmemb, FILE *stream)
{
    return fs->write((unsigned int)stream, ptr, size*nmemb)/size;
}

int fseek(FILE *stream, long offset, int whence)
{
    return fs->seek((unsigned int)stream, offset, whence);
}

/*int sprintf(char *buf, const char *fmt, ...) 
{
    va_list args;
    int i;
    
    va_start(args, fmt);
    i = vsprintf(buf, fmt, args);
    va_end(args);
    
    return i;
}*/

void exit(int status)
{
    printf("fake exit() called - you must reset now\n");    
    while(1);
}

⌨️ 快捷键说明

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