Nobita/014.file_serverがLinuxで動いた


Top / Nobita / 014.file_serverがLinuxで動いた

これは何か

 file_serverを起動して
 	
 colinux% ./file_server                                                                                
 	
 	
 clientを実行すると
 	
 ./fsclient
 .
 ..
 APPS
 PROCESS.BIN
 SERVERS
 T5LZMA.EXE
 	
 file_serverの管理下にあるISO9660ファイルシステムのディレクトリ列挙ができた。
 	
 clientコードはこんな感じ。
 	
 monapi_cmemoryinfo* monapi_call_file_read_directory(const char* path, MONAPI_BOOL prompt)
 {
     monapi_cmemoryinfo* ret;
     dword tid = Message::lookupMainThread("file_server");
     MessageInfo msg;
     if (Message::sendReceive(&msg, tid, MSG_FILE_READ_DIRECTORY, prompt, 0, 0, path) != 0)
     {
         return NULL;
     }
     if (msg.arg2 == 0) return NULL;
 	
     ret = monapi_cmemoryinfo_new();
     ret->Handle = msg.arg2;
     ret->Owner  = tid;
     ret->Size   = msg.arg3;
     monapi_cmemoryinfo_map(ret);
     return ret;
 }
 	
 int main()
 {
     Message::initialize();
 	
     monapi_cmemoryinfo* mi = monapi_call_file_read_directory("/", MONAPI_FALSE);
     monapi_directoryinfo* p = (monapi_directoryinfo*)&mi->Data[sizeof(int)];
     int size = *(int*)mi->Data;
     for (int i = 0; i < size; i++, p++)
     {
         printf("%s\n", p->name);
     }
     monapi_cmemoryinfo_dispose(mi);
     monapi_cmemoryinfo_delete(mi);
 	
     return 0;
 }
 	
 	
 MonaのAPI(共有メモリ・メッセージ)を使っているmonapi_call_file_read_directoryがそのままのコードで動くところが素晴らしい!。
 	
 何がすごいかというと、OSの必須コンポーネントであるファイルシステムの開発が丸ごとLinux上でできるということ。
 	
 開発効率が上がること間違いなし。

コメント

コメントはありません。 コメント/Nobita/014.file_serverがLinuxで動いた?

お名前:

MENU

now: 4

リンク


最新の20件
2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-12-09 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1800, today: 3, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:47:55 (3676d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.015 sec.