Enviar búsqueda
Cargar
D I/O
•
Descargar como PPTX, PDF
•
0 recomendaciones
•
783 vistas
M
monoshoo
Seguir
D言語のI/Oのお話し
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 16
Descargar ahora
Recomendados
勉強会 - 1
勉強会 - 1
KenjiYamasaki5
o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平
o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平
CODE BLUE
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
Kiyoshi Ogawa
D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)
tom-tan
L-1グランプリ "D言語"
L-1グランプリ "D言語"
det coder
『全日本学生ゲーム開発サークル連合』の紹介
『全日本学生ゲーム開発サークル連合』の紹介
IGDA Japan
福井技術者のつどい その1 タコでもわかるD言語講座
福井技術者のつどい その1 タコでもわかるD言語講座
明洋 庄司
C# で i phone ゲーム開発
C# で i phone ゲーム開発
Katsutoshi Makino
Recomendados
勉強会 - 1
勉強会 - 1
KenjiYamasaki5
o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平
o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平
CODE BLUE
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
Kiyoshi Ogawa
D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)
tom-tan
L-1グランプリ "D言語"
L-1グランプリ "D言語"
det coder
『全日本学生ゲーム開発サークル連合』の紹介
『全日本学生ゲーム開発サークル連合』の紹介
IGDA Japan
福井技術者のつどい その1 タコでもわかるD言語講座
福井技術者のつどい その1 タコでもわかるD言語講座
明洋 庄司
C# で i phone ゲーム開発
C# で i phone ゲーム開発
Katsutoshi Makino
オンラインゲーム開発の楽しさ
オンラインゲーム開発の楽しさ
Akineko Shimizu
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
dan5
楽しくて病みつきになるゲームジャムのススメ
楽しくて病みつきになるゲームジャムのススメ
Hiroki Omae
面白いゲームを作る方法
面白いゲームを作る方法
kosenconf012hachinohe
ゲームの企画って…
ゲームの企画って…
Hiroyuki Shimanishi
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
narumi_
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
MASA_T_O
エターナらないゲーム開発
エターナらないゲーム開発
Kohki Miki
東方紅魔郷AI
東方紅魔郷AI
aki33524
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
聡 中川
一人からのゲーム開発
一人からのゲーム開発
Haruto Watanabe
Más contenido relacionado
Destacado
オンラインゲーム開発の楽しさ
オンラインゲーム開発の楽しさ
Akineko Shimizu
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
dan5
楽しくて病みつきになるゲームジャムのススメ
楽しくて病みつきになるゲームジャムのススメ
Hiroki Omae
面白いゲームを作る方法
面白いゲームを作る方法
kosenconf012hachinohe
ゲームの企画って…
ゲームの企画って…
Hiroyuki Shimanishi
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
narumi_
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
MASA_T_O
エターナらないゲーム開発
エターナらないゲーム開発
Kohki Miki
東方紅魔郷AI
東方紅魔郷AI
aki33524
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
聡 中川
一人からのゲーム開発
一人からのゲーム開発
Haruto Watanabe
Destacado
(11)
オンラインゲーム開発の楽しさ
オンラインゲーム開発の楽しさ
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
楽しくて病みつきになるゲームジャムのススメ
楽しくて病みつきになるゲームジャムのススメ
面白いゲームを作る方法
面白いゲームを作る方法
ゲームの企画って…
ゲームの企画って…
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
エターナらないゲーム開発
エターナらないゲーム開発
東方紅魔郷AI
東方紅魔郷AI
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
一人からのゲーム開発
一人からのゲーム開発
D I/O
1.
D言語でI/O ~I/Oの新次元~ @mono_shoo
破壊的変更
2.
はじめに D言語には独自I/Oがない C言語のFILE*を使うしか無い
ポインタェ Streamは? あるけどdeprecatedなんだってよ by Andrei ぶっちゃけ一つの解ではあるけどDならもっといいのが作れるはず!
3.
イメージ import std.io,
std.stdio; void main() { autofport = FilePort(“path/to/file”); foreach (line; fport.byLine) { writeln(line); } } 短いモジュール名! RAIIによる開放! Rangeによるアクセス!
4.
難しい点 独自I/Oの要件 C言語の資産(FILE*)を使えにゃいかん
by Walter まずインターフェースはRangeに… by Andrei テンプレート+構造体で… by 最近のPhobos
5.
何が問題? (1) FILE*との互換性はどこまでもつ?
ノンブロッキングは? バッファは? バッファはどの層が持つべき? Handle/Buffer/Port Handle⊇Buffer/Port Handle/Buffer=Range/Port->Range
6.
何が問題? (2) Handleのインターフェース
プリミティブなメソッド/プロパティ read/write/seek/end/close/… Bufferのインターフェース プリミティブなメソッド/プロパティ Handle⊇Bufferな場合 seekは? 管理大変… Portのインターフェース byLine/byChunk/byPacket/…
7.
1.FILE*との互換性(ノンブロッキング) ノンブロッキングとは? 読み込みのある無しにかかわらず、即座に処理が戻ってくるI/O
8.
具体的なコード importstd.stdio; void
main() {autosrc = stdin;autobuf = newubyte[](10);if (fread(buf.ptr, 1, 10, src) < 10)thrownew Exception("I/O error");} throw が呼ばれるのはエラーの時だけ。 標準入出力で1文字しか入力しなかったらもう一度入力を求める。
9.
ノンブロッキングの問題点 何が問題? FILE*を使う場合、一旦読み込みすると改行コードが現れるまで処理が戻らない!
中身をいじれば出来なくもないが、中身をいじれない処理系がある! DのI/Oをデフォルトで ノンブロッキングに対応するのは不可能!
10.
どうやって解決する? DのI/Oにノンブロッキングを含めない CのFILE*は普通にHandleだのなんだので定義可能
⇒Unbufferedの問題 ⇒Handleのインターフェースの問題 DのI/Oでノンブロッキングはオプションにする CのFILE*を使うHandleはノンブロッキングに出来ない ⇒Unbufferedの問題 ⇒Handleのインターフェースの問題
11.
バッファの問題 CのFILE*を使ってバッファ処理の冗長性を可能な限り取り除くには? CのFILE*はデフォルトでバッファ有効
Dが独自にバッファを持つと冗長な場合がある
12.
何が問題? HandleがFILE*にデータを読み込めと命令 Buffer
Port(CStdioPort) メモリ Handle FILE* メモリ メモリ データ
13.
何が問題? Bufferがバッファリングしろと命令 Buffer
Port(CStdioPort) メモリ Handle FILE* データ メモリ メモリ メモリ
14.
何が問題? Portによるバッファからの読み込み Buffer
Port(CStdioPort) メモリ Handle FILE* データ メモリ メモリ メモリ
15.
冗長! 一つにまとめたい!!! Buffer
Port(CStdioPort) メモリ Handle FILE* メモリ
16.
どうやって解決する? Buffer=Handleにすれば解決 Handle・Bufferのインターフェースの問題
もちろんオプション Port Handle=Buffer FILE* メモリ
Descargar ahora