Soumettre la recherche
Mettre en ligne
D I/O
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
783 vues
M
monoshoo
Suivre
D言語のI/Oのお話し
Lire moins
Lire la suite
Technologie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 16
Télécharger maintenant
Recommandé
勉強会 - 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
Recommandé
勉強会 - 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
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Contenu connexe
En vedette
オンラインゲーム開発の楽しさ
オンラインゲーム開発の楽しさ
Akineko Shimizu
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
dan5
楽しくて病みつきになるゲームジャムのススメ
楽しくて病みつきになるゲームジャムのススメ
Hiroki Omae
面白いゲームを作る方法
面白いゲームを作る方法
kosenconf012hachinohe
ゲームの企画って…
ゲームの企画って…
Hiroyuki Shimanishi
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
narumi_
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
MASA_T_O
エターナらないゲーム開発
エターナらないゲーム開発
Kohki Miki
東方紅魔郷AI
東方紅魔郷AI
aki33524
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
聡 中川
一人からのゲーム開発
一人からのゲーム開発
Haruto Watanabe
En vedette
(11)
オンラインゲーム開発の楽しさ
オンラインゲーム開発の楽しさ
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
楽しくて病みつきになるゲームジャムのススメ
楽しくて病みつきになるゲームジャムのススメ
面白いゲームを作る方法
面白いゲームを作る方法
ゲームの企画って…
ゲームの企画って…
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
エターナらないゲーム開発
エターナらないゲーム開発
東方紅魔郷AI
東方紅魔郷AI
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
一人からのゲーム開発
一人からのゲーム開発
Dernier
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Dernier
(9)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
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* メモリ
Télécharger maintenant