#define INITGUID
#include <os/os.h>
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
int main(int argc, char** argv)
{
IStream* file = (IStream*) fsOpen(L"/boot/fortunes", &IID_IStream);
folderitem_t item;
dword location, pos;
char buf[1024], *ch, ch1;
if (!file)
{
wprintf(L"Failed to open boot/fortunes\n");
return 1;
}
item.size = sizeof(item);
item.name = NULL;
item.name_max = 0;
IStream_Stat(file, &item);
srand(sysUpTime());
location = rand() % item.length;
//wprintf(L"File is %u bytes long; location = %u\n", item.length, location);
for (pos = 0; pos < location; )
{
ch = buf;
while (IStream_Read(file, &ch1, sizeof(ch1)) &&
ch1 != '%' &&
ch - buf < countof(buf))
{
*ch = ch1;
ch++;
}
*ch = '\0';
pos += strlen(buf);
}
wprintf(L"%S", buf);
IUnknown_Release(file);
return 0;
}