- 1 名前:デフォルトの名無しさん [2020/09/28(月) 14:41:30.00 ID:QxfbhGyV0.net]
- !extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ ※前スレ C言語なら俺に聞け 155 https://mevius.5ch.net/test/read.cgi/tech/1589120427/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 596 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 15:18:29.37 ID:Pa9c7HBM0.net]
- >>590
>>583を100回音読してこい
- 597 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 15:22:19.21 ID:/3jYtxszd.net]
- 主語はOS
- 598 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 15:25:32.00 ID:/3jYtxszd.net]
- mallocは単なるトリガー(の1例)
- 599 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 16:21:31.38 ID:Pa9c7HBM0.net]
- 主語でないと関係しないって?
日本語の勉強からやり直した方がいいと思うよ 結構マジで
- 600 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 16:28:50.78 ID:/3jYtxszd.net]
- 非制限用法
- 601 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 16:30:53.38 ID:/3jYtxszd.net]
- 直接関係してなかろうと
(例えば)mallocをトリガーとしてスワップすることは事実
- 602 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 19:42:10.12 ID:Pa9c7HBM0.net]
- >>596
頭大丈夫? そろそろ黙ったほうが良くね?
- 603 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 20:55:52.26 ID:red8nkhVM.net]
- 確かに直接関係はしないな
syscallというレイヤーが挟まるから で?それがどうした?
- 604 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 22:55:39.06 ID:Pa9c7HBM0.net]
- >>597
> (例えば)mallocをトリガーとしてスワップすることは事実 するとは限らんしそもそも仮想記憶のない環境もあるし何が事実だかw
- 605 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 23:26:46.95 ID:LtnZZu+T0.net]
- mallocがスワップアウト要求すんのか? ページアウトですらなく?
- 606 名前:デフォルトの名無しさん [2021/01/23(土) 00:33:31.85 ID:MUxSQoqh0.net]
- mallocは常に成功する、問題はそのメモリにアクセスした時
- 607 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 00:37:30.76 ID:QrEIYEWsM.net]
- Cでマルチスレッドなプログラム書くときのデザインパターンというか、オススメの書き方って何かある?
- 608 名前:デフォルトの名無しさん [2021/01/23(土) 00:40:17.93 ID:MUxSQoqh0.net]
- >>603
pthread
- 609 名前: mailto:sage [2021/01/23(土) 00:47:46.15 ID:JHWvmAOA0.net]
- >>603
私は c++11 以降に移行しました、言語が MT をサポしてくれているのはありがたいです‥
- 610 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 03:11:07.99 ID:WU8kpFS10.net]
- >>600
mallocをコールした結果スワップすることがあるのは事実
- 611 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 03:12:25.03 ID:WU8kpFS10.net]
- pthreadやc++11がデザインパターン?
- 612 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 07:30:28.10 ID:4VL29Q1J0.net]
- >>606
>>602
- 613 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 08:27:23.59 ID:WU8kpFS10.net]
- >>602
それは実装次第
- 614 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 08:43:07.74 ID:4VL29Q1J0.net]
- >>609
だから>>583の様に言い切る奴はアホだ って話でしょ
- 615 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 08:50:59.97 ID:pbmfU4sr0.net]
- >>602
どんな実装でも仮想アドレスに連続領域が確保できなかったらmalloc呼び出し時点で失敗するんじゃないの?
- 616 名前:デフォルトの名無しさん [2021/01/23(土) 09:44:47.82 ID:MUxSQoqh0.net]
- >>611
実際にアクセスする時には仮想連続領域があるかもしれないじゃん
- 617 名前:デフォルトの名無しさん [2021/01/23(土) 09:45:23.82 ID:MUxSQoqh0.net]
- んで、そんな時こそのスワップですよw
- 618 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 10:27:22.67 ID:4VL29Q1J0.net]
- >>611
オーバーレイで仮想空間を拡大する実装かもしれんw オーバーヘッドがでかすぎるしそもそも今時の環境でそこまでする必要があるとは思えないけど >>612-612 仮想アドレスと物理アドレスの区別ついてる?
- 619 名前:デフォルトの名無しさん [2021/01/23(土) 10:29:19.13 ID:MUxSQoqh0.net]
- >>614
バカなの?
- 620 名前:デフォルトの名無しさん [2021/01/23(土) 10:31:56.75 ID:MUxSQoqh0.net]
- >>611
とりあえず割り当てちゃうんだよ
- 621 名前:デフォルトの名無しさん [2021/01/23(土) 10:36:34.75 ID:MUxSQoqh0.net]
- アプリとかプログラムのcodeだって全部メモリ上にロードされてないからな、アクセスした時に、あっそこにはプログラム無いから今からロードするわ〜、って感じだから
- 622 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:00:13.95 ID:4VL29Q1J0.net]
- >>615
ネタに突っ込んでるのか、仮想アドレスも理解できてないことを指摘されて悔しいのかをはっきりさせてくれw
- 623 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:08:04.07 ID:sAz3YI3ta.net]
- >>616
仮想アドレスに連続した空き領域が足りないのに、とりあえずで何を割り当てるんだよ
- 624 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:15:26.28 ID:X7rXBKGs0.net]
- メモリーマップトファイルでペタバイトの巨大なプログラムを実行するんだい
- 625 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:55:57.12 ID:pbmfU4sr0.net]
- >>614
俺にレス?なんか間違ってるか?
- 626 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:57:17.63 ID:pbmfU4sr0.net]
- >>621
おっと612か。すまんかった
- 627 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 15:00:04.42 ID:E2XTqnevd.net]
- >>610
言いきってるように見える? おれには初心者が「大体こんな感じ?」って言っただけにしか見えないんだけど 意味的には大体合ってるのに 全然違う とか 最近のOSとしか書いてないんだし 技術的な話をしたいならせめてOSを特定しようよ 勝手に特定のOSを前提にした視野が狭い人みたいだから
- 628 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 15:27:34.50 ID:4VL29Q1J0.net]
- >>623
ああ、>>583が言い切ってるは言い過ぎだな その後の>>586がアホだって言い直すわ
- 629 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 15:31:32.55 ID:E2XTqnevd.net]
- いやどう見ても>>584がアホ
- 630 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 16:34:32.36 ID:LPDMRZtK0.net]
- スワップファイルが満杯でmallocが失敗なんて状況に陥る前に対策するだろjk
- 631 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 16:57:50.33 ID:5Na5U87Z0.net]
- linux って簡単に process 殺すよね
知らんふりも得意
- 632 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 18:17:32.24 ID:4VL29Q1J0.net]
- >>625
アホと言うなら具体的にどこがアホって書かないと恥ずかしいだけだぞ 一応ここ技術板だし
- 633 名前:619 [2021/01/24(日) 15:57:31.34 ID:5JJAlISZ0.net]
- >>619
64bit時代に仮想アドレスに連続した空き領域が無くなることなんか現実に無いだろ
- 634 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 16:53:19.15 ID:0zbFdmBp0.net]
- >>629
それなら>>616の時点でそう書けばいいだろう。まあC言語の用途を考えれば後付けで64bitに限った話にしようとするのは馬鹿げているが。 で、>>616のとりあえずって結局何だったの?
- 635 名前:デフォルトの名無しさん [2021/01/24(日) 17:27:58.38 ID:5JJAlISZ0.net]
- >>630
常に成功を返す
- 636 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 17:35:27.66 ID:1wsdfsyQ0.net]
- 実際にアクセスしたときにページフォルト起こしてページを割り当てるとして、そのアドレスに
連続した空きがない状態じゃメモリ割り当てても使えないじゃん。
- 637 名前:デフォルトの名無しさん [2021/01/24(日) 22:06:29.57 ID:5JJAlISZ0.net]
- >>632
日本語が変だぞw
- 638 名前:デフォルトの名無しさん [2021/01/24(日) 22:09:51.26 ID:5JJAlISZ0.net]
- PFでメモリ割り当てられなきゃ、リスケジューリングだアホ
- 639 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 22:14:36.76 ID:1wsdfsyQ0.net]
- 割り当てられたとしても使えないと言っているんだが?それとも既に他で使われている領域を上書きするか?
- 640 名前:デフォルトの名無しさん [2021/01/24(日) 22:18:58.47 ID:5JJAlISZ0.net]
- >>635
4Kページ割り当てて使えないって何なんだよ・・
- 641 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 22:24:12.86 ID:1wsdfsyQ0.net]
- アドレスに連続した空きがない状態だよ。最初からその話をしてるんだろ?
- 642 名前:デフォルトの名無しさん [2021/01/24(日) 22:28:07.43 ID:5JJAlISZ0.net]
- >>637
4K+1byte目をアクセスしたらまたPFだから、MMUの勉強したら?
- 643 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 22:41:44.60 ID:1wsdfsyQ0.net]
- その4Kの中に要求するサイズの連続領域が取れない場合の話だよ。
いったいなにを「とりあえず」割り当てるんだか。
- 644 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 23:52:48.21 ID:5uhuun5ZK.net]
- ページングの話とmallocの領域管理の話がごっちゃになってるな
ページアウトされた領域に空きがあるかどうかはページインしなきゃわからないかもしれないが、そしたら他のページを探しに行くだけ 最終的にどこにも空きがなけりゃmallocがエラーを返す 空き容量が十分あっても希望するサイズの連続領域がないなんてケースは実際にもあり得る
- 645 名前:デフォルトの名無しさん [2021/01/25(月) 00:08:13.28 ID:U3eoM7Fp0.net]
- 仮想アドレスなんだから使う時まで要らないんだから、mallocは必ず成功する。
昨今のOSは全てそう実装されてる。
- 646 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 00:11:52.23 ID:WuLpUwZU0.net]
- オーバーブッキングを平気でするホテルみたいだな
- 647 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 01:00:15.57 ID:8MmNCL2s0.net]
- >>641
バカ?
- 648 名前:デフォルトの名無しさん [2021/01/25(月) 01:17:43.98 ID:U3eoM7Fp0.net]
- iOSのreusableCellの取得も必ず成功するからforce unwrapできるし
- 649 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 07:05:04.38 ID:HugL0xWrM.net]
- >>641
仮想アドレスを使わないOSもあるんだが まあ安易に「全て」とか使ってるからレス乞食なんだろうな
- 650 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 08:02:50.43 ID:dmbNtT1m0.net]
- >>641
勉強しろと言った本人が理解していないのが丸わかり。 使う時まで要らないのは物理メモリであってmallocの時点で仮想アドレスは割り当てなきゃならん。 もし仮想アドレスに空きがなけりゃ「とりあえず割り当てる」なんてのも無理。
- 651 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 09:02:02.61 ID:+X0AlmLXK.net]
- 実際「mallocは常に成功する」とか根拠なく信じ込んでる奴にはシステム開発は任せられんよ
あとで痛い目みる
- 652 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 10:01:03.33 ID:NuAiBZ6D0.net]
- >mallocは常に成功する
Win98SEで失敗したしたことあるわ。
- 653 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 10:44:35.68 ID:MIcmX8A+0.net]
- ハードがMMUで物理的に管理するメモリ上限とか、OSが管理する上限とか、論理上いつか確保出来ない状況は絶対来るの分かっているけれど、そこでエラー起こされると打つ手がない(思い付かない)から、そのまま落ちてもらう。
俺が知らないだけで、良い回避方法とかあるのかな?
- 654 名前:はちみつ餃子 mailto:sage [2021/01/25(月) 11:32:21.69 ID:ktS6mGMX0.net]
- >>649
・ オーバーコミット機能はオフにする ・ malloc (等) がエラーを返すかチェックを怠らない ・ 終了処理にどうしても必要なメモリは事前に確保しておいて他に使わない
- 655 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 07:53:24.98 ID:ZI8ZD6Xld.net]
- 非常用のメモリを取っとくのは
大昔から当たり前の手法だね
- 656 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 09:07:24.49 ID:7OslGgb50.net]
- mallocを信じて生きていけばいいさと 君は叫んだだろう
- 657 名前:はちみつ餃子 mailto:sage [2021/01/26(火) 10:29:56.18 ID:xZCVqJnF0.net]
- >>652
https://www.youtube.com/watch?v=dAs2yQUNkdU
- 658 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 11:06:15.63 ID:CnGywsMw0.net]
- メモリ不足だと表示して終了しちゃいかんのか?
- 659 名前:はちみつ餃子 mailto:sage [2021/01/26(火) 11:51:32.15 ID:xZCVqJnF0.net]
- >>654
それでいい状況ならそれでいいんだよ。 それじゃ駄目なときの話をしてる。
- 660 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 12:18:24.13 ID:nusF9BATd.net]
- 車を運転してたら
「メモリ不足です」と表示されてブレーキが効かなくなった 冷蔵庫が「メモリ不足です」と表示されて止まっていた ああメモリ不足ならしょうがない って思う人いるかな?
- 661 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 12:24:58.20 ID:qqWW8hOx0.net]
- 航空機搭載システムなんかは動的メモリ割り当て自体を禁止してるそうな
でもアルゴリズムによっては動的メモリ割り当てが本質的なこともあるだろうし 事前割り当てしたところで、自前でmymallocを実装するってだけな気はするし ミッションクリティカルなアプリがどうやってるかはちゃんと調べないと判らんね
- 662 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 12:29:47.88 ID:nusF9BATd.net]
- 航空機なんて特別な例を出さなくても
身の回りの電気製品でソフト要因のエラーが許される物なんてなかなか無いような気がする
- 663 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 12:41:48.87 ID:Ab88y5Cj0.net]
- >>657
オーバーフローは危険なのでスタックの使用も禁止します
- 664 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 12:49:59.07 ID:nusF9BATd.net]
- 条件を満たせは静的解析でスタック使用量はわかる
整数型はオーバーフローして危険だから禁止
- 665 名前:はちみつ餃子 mailto:sage [2021/01/26(火) 13:32:22.24 ID:xZCVqJnF0.net]
- そういえば何の事例だったかでループも禁止 (停止性の証明が難しいので) とかいうのは聞いたことがあるな。
- 666 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 13:33:43.60 ID:cSn18yXwM.net]
- >>659
再帰禁止とか組み込みなら珍しくないぞ
- 667 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 14:31:35.84 ID:46etcFxHd.net]
- >>661
ループ禁止でコードを組める気がしないのだが 処理したらCPUリセットするの? ループ以外に何か禁止な条件があるはず
- 668 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 14:35:21.22 ID:46etcFxHd.net]
- ヒープ禁止は普通にある
禁止というかそもそもヒープ用にメモリが無いとか 設計方針でヒープモジュールを搭載しないとか あとは確保オンリーなヒープってのもある PICとかだとハード的に再帰が難しいとか
- 669 名前:デフォルトの名無しさん [2021/01/26(火) 21:31:25.38 ID:INqgRhQd0.net]
- JALの航空管制制御のプログラム作ったことあるけど、
1ルーチンコードサイズ4KBまでIBM3090アセンブラ ループ処理などなく、また呼ばれる 可愛い平さん元気かなぁ・・
- 670 名前:デフォルトの名無しさん [2021/01/26(火) 21:32:25.57 ID:INqgRhQd0.net]
- 手塚さんとかも綺麗だったな・・おれまだ学生だったw
- 671 名前: mailto:sage [2021/01/26(火) 23:53:23.00 ID:uzBXnria0.net]
- >>653
コード進行が凄い曲ですね‥‥ギターコードが書いている楽譜ってないですかね?
- 672 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 00:01:47.99 ID:fhlKtwwY0.net]
- 上の空で書いていたのか
- 673 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 07:49:16.31 ID:or8n1kaA0.net]
- 8/16bit時代のハードみたいに起動時にメモリサイズやエラーチェックしてワークエリアサイズ固定で設計するだけだわな。
そういやぁある記事で80286って工業用途を想定してて、エラーが発生して停止したら電源入れ直す以外に再起動できないとか言ってたな。
- 674 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 07:52:13.49 ID:MIG3AZ730.net]
- >>665
ルーチンの呼び元はループ、もしくはループ相当の動きをしてるわけだよね ループがなければ無限のサイズのコードじゃ無い限り動き続けるのは不可能じゃ?
- 675 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 07:59:19.27 ID:MIG3AZ730.net]
- >>667
非常に簡単なのしか使ってないんで耳コピ簡単じゃ?
- 676 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 10:55:52.75 ID:9MA4/mbB0.net]
- >656
>「メモリ不足です」と表示されてブレーキが効かなくなった 上級国民が大喜びな仕様だな。 メモリ不足になるような仕様を避けるのが当然で、 それでも起きるなら安全に停止できる機能を搭載するだろ。 とりあえず電源喪失状態でもブレーき利くようにするとか。 そういやぁどっかの列車で安全装置の故障で自動停車されなくて事故ったってのあって、 安全装置からの信号がONになった時にブレーキが作動するって仕様になってたのを 安全装置からの信号が来なくなったら(ずっと信号ONって不具合もかあるだろうから通信のやり取りでもあるのかな) ブレーキ作動させるようになったって聞いたわ。
- 677 名前:デフォルトの名無しさん [2021/01/27(水) 11:34:46.40 ID:cJSBZXf90.net]
- >>667
Monacaの田中秀和って好き?
- 678 名前:デフォルトの名無しさん [2021/01/27(水) 12:05:51.10 ID:isvLWJ6Q0.net]
- >>656
飯塚会長なら言いそうだ
- 679 名前:デフォルトの名無しさん [2021/01/27(水) 12:09:55.82 ID:cJSBZXf90.net]
- >>662
組み込みが再帰禁止なのは スタック段数が少な過ぎるからじゃないんですか >>659 と同じことを言ってるだけと思いますが
- 680 名前:デフォルトの名無しさん [2021/01/27(水) 12:12:51.81 ID:cJSBZXf90.net]
- >>663
常にHALT+割り込みのみで書かれたものはあったはず
- 681 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 12:27:46.11 ID:gQSND64l0.net]
- >>675
その理由もあるけどスタックの見積がやりにくいからという理由もある >>661に類似だけど停止条件トチッたら容易にスタック食いつぶすし
- 682 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 13:33:58.28 ID:vpj9vmrAd.net]
- >>662
貧乏マイコンは数段程度しかないから関数の中で関数呼ぶのすら危うかったりするな… 高級マイコンは16段の見たことあるが
- 683 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 13:57:29.31 ID:DAR3YVvc0.net]
- HALTと割り込みでもいつかはどこかで最初からの繰り返しループにならない?
割り込み中でステート管理して、スタックを操作して最初に戻るとか? 出来ないマイコンもありそうだけど
- 684 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 14:01:16.93 ID:N60gZ7990.net]
- そういう制御込みでコンパイルして吐き出してくれるなら Cの選択肢もあるだろうけど
それが期待できないとなると アセンブラしかない ってことになるのかな
- 685 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 17:35:31.51 ID:6jCnxoTKd.net]
- >>678
PICでしょ 一番安いヤツはハードウェアスタック2段
- 686 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 17:36:57.11 ID:6jCnxoTKd.net]
- >>679
手段は色々あっても ループはループ と思う
- 687 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 20:45:42.53 ID:gQSND64l0.net]
- >>679
まあどこかでループは必要だわな >>661はそういうループはきっちり検証して個々の処理ルーチンではループ禁止っていう話かと
- 688 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:07:06.58 ID:7vi5L3Y30.net]
- 初心者です
変数に&を付けてメモリのアドレスを表示させるプログラムを実行して(0x7efe61e298d8←こんな感じ?) その後1時間とか経過して別のプログラムでメモリ「0x7efe61e298d8」に格納されたものを表示させることってできるんですかね?
- 689 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:11:59.94 ID:fhlKtwwY0.net]
- OSが何かにもよるけど
一般論としては出来る。出来るが、 成功するかどうかは分からない
- 690 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:34:48.42 ID:XppLd9do0.net]
- MS-DOSのTSRか
- 691 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:52:57.86 ID:7vi5L3Y30.net]
- C言語というよりOS側の問題なんですね
ありがとうございます
- 692 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 05:11:34.57 ID:52TUUvk80.net]
- >>681
それ、スタックを使って構造化プログラミングを実現した言語であるCを使う利点が一切ないような… 組み込み/マイコン向け言語でスタックを使わず構造化プログラミングを実現するにはcpsスタイルの言語がベストなはず、lisp方言schemeにはそれ向けのサブセット仕様もあるし、ホビー界隈ではそこそこ使われてる模様 (但し主なpc向け実装は、アーキテクチャに合ったスタックによるcps実装が多い、念のため) forthも消えてしまったなあ C換算百行未満でブートストラップ&セルフホスト処理系が書け、OS機能も兼ね、規格にあるライブラリ関数も改変無しコピペで動く移植性の良さ c台頭までは組み込み/マイコン界隈を寡占してたんだが ちゃんとスタック指向&構造化言語だけど、ハードウェアスタックに頼らないので相性がよい 唯一の敗因はlisp以上に深淵なことだな… cは既に国際語になってしまったので、取り敢えず分かるcで書く、ってのがcが使われる唯一の理由だと思う
- 693 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 05:58:13.87 ID:pfPCg+P40.net]
- 動的確保なしの32ビットマイコン使って飯食ってるけど、さすがに再起は使わんが、
好きなだけ関数呼び出し深く出来るだけでも恵まれてたんだな。スタックオーバーフローは一応気にしないといかんけど。 ミッションクリティカルなコードなんてゼッテー無理だわw Adaとか使われるんだっけ?と思ったら微妙に廃れ気味なんね。よーしらんけど。
- 694 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 08:01:19.64 ID:Z02UUfjqK.net]
- >>684
たぶん意味がない。 今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。 プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
- 695 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 08:05:06.42 ID:c7JCU6ma0.net]
- 今時のOS,CPUだとアクセスした瞬間に例外発生する
- 696 名前:はちみつ餃子 mailto:sage [2021/01/28(木) 10:46:55.99 ID:vBYpvnJx0.net]
- >>684
(現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、 あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。 他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには OS に依頼して仲介してもらうという形をとる。 プロセス間でメモリの共有をすることも可能だが、 それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形 なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。 あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。 それがセキュリティというものだよ。
|

|