Rust part10at TECHRust part10 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト130:デフォルトの名無しさん 21/04/17 13:30:05.64 5SUmF/jF.net >>125 > if ( (ptr = new char [サイズ]) == NULL ) { // (2) C++ は new も vector::push_back も bad_alloc が飛ぶ。ふつうの new は nullptr 返さない。 131:デフォルトの名無しさん 21/04/17 13:35:37.75 YGcs/48d.net てかアロケータの動作がどうのってLinux Kernel関係あるの? ベアメタル用途全般が該当すると思うけど 132:デフォルトの名無しさん 21/04/17 14:08:16.83 h7zOlTtk.net >>129 そういえば、言葉は忘れたけど、関数宣言の行に、その関数の中でどういう 例外が起きる可能性があるかについてのthrows を書くかどうか、書くべきか、 省略しても良いか、などの違いが色々あって、どういう言語仕様にすべきかが 結構問題になっていると聞いた。 すべてを書くと多くなりすぎるし、全く書かないのも問題だとか、そんな話。 なんという言葉だったかな。 133:デフォルトの名無しさん 21/04/17 14:30:50.99 ahfNUrst.net allocatorがエラーを返さずに例外を上げる挙動にRustの標準ライブラリ的なもの(コレクションとかスマートポインタとか?)が依存していて、 それはLinuxカーネル的には許容できないからそういうコードをそのまま持ち込むなよ?ということでしょ Linuxカーネル上のC言語はそもそも標準ライブラリとか使わないし メモリ確保もmallocじゃなくてkmallocというカーネル内独自関数使うし ここ見ると https://medium.com/nttlabs/linux-kernel-module-with-rust-d5363c2f9085 array: vec![0;32] で kmalloc が呼ばれるみたいだね でもこれLinuxのカーネルモジュールのコードとしてはそこでエラーチェックが必要になるのかね? もしくはkmallocに失敗したらそのモジュール自体が自動でアンロードされるとか でもアンロードされるときに後処理とかしたいかなとかいろいろ考える必要はありそう 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch