【OS.c】 #include <stdio.h>
char memory[256]; // 假定這個就是「作業系統」的一塊內存
int main() { char *pStr; int size, n; // 將要運行的程序讀入「內存」 FILE *fp = fopen("app.hrb", "r"); fseek(fp, 0, SEEK_END); size = ftell(fp) - 1; // size = 文件大小 - 1 fseek(fp, 1, SEEK_SET); // 必須跳過文件中的第一個字節 fread(memory, size, 1, fp); // 從第二個字節開始讀取,一直到文件結束 fclose(fp); // 運行「程序」, 並獲取「程序」向「作業系統」返回的值 n = ((int (*)())memory)(); pStr = memory + n; puts(pStr); // 輸出程序中的字符串 return 0; }
|