[過去ログ]
C言語なら俺に聞け 152 (1002レス)
C言語なら俺に聞け 152 http://mevius.5ch.net/test/read.cgi/tech/1560763630/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
844: ◆QZaw55cn4c (ワッチョイ aa47-UOPh) [sage] 2019/07/27(土) 10:24:42 ID:BeYdmmLD0 >>842 そうか log n くらいには改善されるわけですね…てへぺろ http://mevius.5ch.net/test/read.cgi/tech/1560763630/844
845: デフォルトの名無しさん (ワッチョイ de12-xrbd) [sage] 2019/07/27(土) 12:29:43 ID:x/Y2IYID0 相変わらずの屑っぷり http://mevius.5ch.net/test/read.cgi/tech/1560763630/845
846: デフォルトの名無しさん (ワッチョイ 0aab-96Ml) [] 2019/07/27(土) 22:29:55 ID:7WTVPtxd0 ゲート容量分の時間誤差は絶対生まれるかんな(´・ω・`) http://mevius.5ch.net/test/read.cgi/tech/1560763630/846
847: デフォルトの名無しさん (ワッチョイ a32c-Yj82) [sage] 2019/07/27(土) 23:01:09 ID:zJ973H0i0 意味のわからん時間誤差とかいう用語、未定義で使うな http://mevius.5ch.net/test/read.cgi/tech/1560763630/847
848: デフォルトの名無しさん (ワッチョイ 8aad-hCJc) [] 2019/07/27(土) 23:32:10 ID:AqzO7oC20 >>833 俺にはわかる。 慣れの問題では? まあでも慣れるかどうかは個人差あるしこの言語で慣れねばならないなんてことはないので気にせず他の自分がわかりやすいと感じた言語使えばいい。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/848
849: デフォルトの名無しさん (ワッチョイ 0aab-96Ml) [] 2019/07/27(土) 23:44:22 ID:7WTVPtxd0 >>848 それって正規表現をどう変換する関数なの? http://mevius.5ch.net/test/read.cgi/tech/1560763630/849
850: デフォルトの名無しさん (ワッチョイ 87c3-MmDk) [sage] 2019/07/27(土) 23:54:17 ID:p4Dr/Hvv0 regexpをcompileするって概念はスクリプト言語ですら大抵存在するのに NFAやらDFAやらだったり専用VMのバイトコードに落としたりと色々だろ http://mevius.5ch.net/test/read.cgi/tech/1560763630/850
851: デフォルトの名無しさん (ワッチョイ 8aad-hCJc) [] 2019/07/28(日) 00:01:11 ID:JTvgZUGV0 >>849 最初のはパターンのコンパイル。次のは文字列とコンパイル済みパターンとのパターンマッチングをさせる関数。 詳細はマニュアルページ見るなりググるなりして調べてくれ。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/851
852: デフォルトの名無しさん (ワッチョイ 8aad-hCJc) [] 2019/07/28(日) 00:05:40 ID:JTvgZUGV0 まあしかし>>838に書いてあるような内容なら正規表現使わないで単純な比較をするだけの方が速いしプログラムもわかりやすくなるような気がするなあ。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/852
853: デフォルトの名無しさん (ワッチョイ 0aab-96Ml) [] 2019/07/28(日) 00:58:43 ID:bTD+Zgyn0 >>851 行ごとに文字列を細分化して それで当てはめていくって感じかな? 正規表現関係はけっこう頭抱えるもんね! http://mevius.5ch.net/test/read.cgi/tech/1560763630/853
854: デフォルトの名無しさん (ワッチョイ 0aab-96Ml) [] 2019/07/28(日) 01:00:17 ID:bTD+Zgyn0 C言語のソースメモをオートインデントして整理しようとプログラムくんだけど こういった関数つかって分岐かけていったほうが完璧なんかな? でも時間すごい掛かりそうw http://mevius.5ch.net/test/read.cgi/tech/1560763630/854
855: 蟻人間 ◆T6xkBnTXz7B0 (スププ Sdaa-2HKN) [sage] 2019/07/28(日) 07:30:52 ID:S9RT+Rd/d >>854 そのプログラムを書く手間を自動化してみては? http://mevius.5ch.net/test/read.cgi/tech/1560763630/855
856: デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1) [sage] 2019/07/28(日) 07:43:00 ID:OCkB7AjV0 unixのindentコマンドか 本末転倒を体現する変なやつ http://mevius.5ch.net/test/read.cgi/tech/1560763630/856
857: デフォルトの名無しさん (アウアウウー Sacf-hHEI) [] 2019/07/28(日) 16:13:19 ID:kBOAQwNYa >>818 てか、Unicodeのスペースって沢山あるよ。 Wikipediaで「スペース」で検索して見てみな。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/857
858: デフォルトの名無しさん (ワッチョイ 1e63-/0C9) [sage] 2019/07/28(日) 16:21:28 ID:QNzNEkbM0 たくさんあるとなると「空白」の検索めんどくない? http://mevius.5ch.net/test/read.cgi/tech/1560763630/858
859: デフォルトの名無しさん (ワッチョイ 0aab-96Ml) [] 2019/07/28(日) 17:31:05 ID:bTD+Zgyn0 >>856 何もオプションを付けないindentコマンドを実行すると 予想外のソースコードが出てくる可能性が高い とか書いてるひといるね! インデントフォーマットって好みが人それぞれ違うから自分専用のもっててもええのかも?w http://mevius.5ch.net/test/read.cgi/tech/1560763630/859
860: デフォルトの名無しさん (アウアウウー Sacf-hHEI) [] 2019/07/28(日) 19:58:58 ID:H3r8YGb9a >>858 そう。面倒だよ。 ま、しかし、wchar_t型使えるならiswspace()とか色々判定する関数が使える。 http://www.c-tipsref.com/reference/wctype.html http://mevius.5ch.net/test/read.cgi/tech/1560763630/860
861: デフォルトの名無しさん (スププ Sdaa-6AdZ) [sage] 2019/07/29(月) 21:48:56 ID:CSar0obtd https://i.imgur.com/J5yu9wS.jpg http://mevius.5ch.net/test/read.cgi/tech/1560763630/861
862: デフォルトの名無しさん (アウアウウー Sacf-hHEI) [sage] 2019/07/30(火) 19:03:35 ID:6XKWfMZ+a >>861 グロ http://mevius.5ch.net/test/read.cgi/tech/1560763630/862
863: デフォルトの名無しさん (ワッチョイ eda3-hJCQ) [] 2019/08/01(木) 00:35:30 ID:0yunxMSQ0 >>817 Whitespaceごっこできないようにだろw http://mevius.5ch.net/test/read.cgi/tech/1560763630/863
864: デフォルトの名無しさん (ワッチョイ 2df0-GevM) [sage] 2019/08/04(日) 23:25:49 ID:xIOvQDiR0 c言語って今どんな仕事あんの? http://mevius.5ch.net/test/read.cgi/tech/1560763630/864
865: デフォルトの名無しさん (ワッチョイ 0501-LGjB) [sage] 2019/08/05(月) 05:36:47 ID:QAwvndB40 >>864 ハードと無線の知識があればIoTが花盛り。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/865
866: デフォルトの名無しさん (アウアウウー Sa09-XqET) [] 2019/08/05(月) 18:15:51 ID:ffPl9KHXa 機械の試運転してるんだけど組み込みの部署に行きたい。どう勉強すればええ? http://mevius.5ch.net/test/read.cgi/tech/1560763630/866
867: デフォルトの名無しさん (ワッチョイ 75da-/7DC) [sage] 2019/08/05(月) 18:38:57 ID:LSG3ddZk0 機械の試運転とは? http://mevius.5ch.net/test/read.cgi/tech/1560763630/867
868: デフォルトの名無しさん (アウアウウー Sa09-XqET) [] 2019/08/05(月) 19:55:27 ID:ffPl9KHXa >>867 配線やら電気系のことして実際に動くかどうかを確認して不具合が出たら直す仕事 http://mevius.5ch.net/test/read.cgi/tech/1560763630/868
869: デフォルトの名無しさん (ドコグロ MM93-EOJ1) [sage] 2019/08/05(月) 20:02:47 ID:s1STjseDM >>866 まずは日本語からかな 言いたい事が人に伝わるようになれ http://mevius.5ch.net/test/read.cgi/tech/1560763630/869
870: デフォルトの名無しさん (ワッチョイ 25f6-7ShF) [sage] 2019/08/05(月) 20:55:17 ID:sY7ZsQgE0 >>868 電子じゃない電気なの? http://mevius.5ch.net/test/read.cgi/tech/1560763630/870
871: デフォルトの名無しさん (ワッチョイ cb63-0ks1) [sage] 2019/08/05(月) 21:11:13 ID:9k1HrfSt0 ひょっとしてシーケンサー? http://mevius.5ch.net/test/read.cgi/tech/1560763630/871
872: デフォルトの名無しさん (アウアウウー Sa09-XqET) [] 2019/08/05(月) 22:17:01 ID:ffPl9KHXa >>870 工業の情報卒なんだけど電気系に配属されたんやで。 PLCで動く機械もあるし、C言語で動く機械もあるで http://mevius.5ch.net/test/read.cgi/tech/1560763630/872
873: デフォルトの名無しさん (アウアウエー Sa13-x4/I) [sage] 2019/08/05(月) 23:05:42 ID:80MqE3Goa 車載系の仕事は最近多いよ でもCじゃなくてC++だと思う。規格的に。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/873
874: デフォルトの名無しさん (ワッチョイ ad63-7p+E) [sage] 2019/08/07(水) 00:38:42 ID:TX6V/c5+0 だいぶ前(20年ぐらい前)からですが C言語で配列の範囲オーバーすると ほぼ必ずSegmentation Faultになるようになった メモリ上の配置を考えたら ちょっと範囲オーバーしたからって滅茶苦茶な値を読み込みながら普通に動くはず 毎回コンパイラが範囲チェックするようなマシン語吐いてるんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1560763630/874
875: デフォルトの名無しさん (アウアウエー Sa13-x4/I) [sage] 2019/08/07(水) 00:49:22 ID:xA4g5oLMa でかいプログラムなら余裕があるから今でも結構耐えると思うけどね ASLRのせいとか? http://mevius.5ch.net/test/read.cgi/tech/1560763630/875
876: デフォルトの名無しさん (ワンミングク MMa3-J2R6) [sage] 2019/08/07(水) 08:05:09 ID:hSQIkEVZM 配列のメモリ配置をページ境界ぎりぎりに配置するようになってるリンカを使ってるとか。 環境わからんからなんとも言えんが、ちょっとはみ出した程度で障害を検知するようなメモリ配置するリンカは使ったこと無いので、もしあるなら環境知りたいわ。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/876
877: デフォルトの名無しさん (ブーイモ MMc9-YLZR) [sage] 2019/08/07(水) 19:29:43 ID:kvH3ILvqM 「ちょっと」がどれくらいか知らないけど プログラムの割当範囲超えて読み出せたらセキュリティ問題になりそうだから OS側でエラーにしてるんじゃね 20年くらい前ってことはWin2000とか NT系列が普及してきた頃か http://mevius.5ch.net/test/read.cgi/tech/1560763630/877
878: ◆QZaw55cn4c (ワッチョイ 6347-Tyr6) [sage] 2019/08/07(水) 19:37:57 ID:6yYkldJK0 >>877 >OS側でエラーにしてるんじゃね どうやって… http://mevius.5ch.net/test/read.cgi/tech/1560763630/878
879: デフォルトの名無しさん (JP 0H51-JqUZ) [sage] 2019/08/07(水) 20:03:18 ID:gw5PInHpH 1バイトでもずれたらエラーにするようなおせっかいな Cコンパイラなんて実用的に使われるはずないし、 それを検出するようなOSも存在しないから心配するな。 「ほぼ」必ずがどんなもんか知らんが、 環境も書かないうろ覚え情報は価値なし。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/879
880: デフォルトの名無しさん (アウアウエー Sa13-x4/I) [sage] 2019/08/07(水) 20:21:39 ID:klXV3cZTa segvってそもそも誰が出してんの? CPU? http://mevius.5ch.net/test/read.cgi/tech/1560763630/880
881: デフォルトの名無しさん (ワッチョイ ab7c-0ks1) [sage] 2019/08/07(水) 20:28:42 ID:fbTDynTX0 >>880 まあ大体そう 最近メモリコントローラは実家に戻って子供部屋おじさんになった http://mevius.5ch.net/test/read.cgi/tech/1560763630/881
882: デフォルトの名無しさん (ワッチョイ 0501-LGjB) [sage] 2019/08/07(水) 20:33:14 ID:SR2YpJo70 工期ではCPUで良いけど正確にはMMUだな。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/882
883: デフォルトの名無しさん (ワッチョイ 0501-LGjB) [sage] 2019/08/07(水) 20:33:45 ID:SR2YpJo70 ✕工期 ○広義 http://mevius.5ch.net/test/read.cgi/tech/1560763630/883
884: デフォルトの名無しさん (スフッ Sdfa-xky6) [] 2019/08/08(木) 21:20:13 ID:gHNDo6wMd C言語のポインタで 構造体の中で char *a; でメンバを入れてその後 bc.a=なんちゃら〜 で中身を入れれる意味がわかりません(bcは適当) この時のaはchar型のアドレスを入れる用の箱じゃないんですか? http://mevius.5ch.net/test/read.cgi/tech/1560763630/884
885: デフォルトの名無しさん (ワッチョイ 9501-xky6) [sage] 2019/08/08(木) 21:29:57 ID:DLp++heI0 >>884 その中身はchar*なんでしょ http://mevius.5ch.net/test/read.cgi/tech/1560763630/885
886: デフォルトの名無しさん (JP 0Had-pswD) [sage] 2019/08/08(木) 21:36:44 ID:6z4gxBSLH >>884 なんちゃら〜が不明。もっとちゃんと引用して。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/886
887: デフォルトの名無しさん (ワッチョイ 7d61-VaZZ) [sage] 2019/08/08(木) 21:43:20 ID:ggjVn3y20 >>884 ん? 代入でbc.aのポインタが指す先の中に入れられると思ってるのか?それは気のせいだ http://mevius.5ch.net/test/read.cgi/tech/1560763630/887
888: デフォルトの名無しさん (アウアウウー Sa39-y1ph) [sage] 2019/08/08(木) 22:22:51 ID:tebxUNsfa >>884 はマルチポスト スレ立てるまでもない質問はここで 149匹目 https://mevius.5ch.net/test/read.cgi/tech/1529199088/567n http://mevius.5ch.net/test/read.cgi/tech/1560763630/888
889: デフォルトの名無しさん (ワッチョイ 7144-1zmT) [] 2019/08/08(木) 23:56:48 ID:Z+gh8ecz0 コピペで事務仕事をある程度自動化できる程度やけとプログラマになってもええか? 組んだことあるのはJAVAとCとVBAや。ポインタはイマイチよく分かっとらん。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/889
890: デフォルトの名無しさん (アウアウエー Sa02-O5Qm) [sage] 2019/08/09(金) 00:24:13 ID:6e2j91pda 注力するならC#がええと思いますよ http://mevius.5ch.net/test/read.cgi/tech/1560763630/890
891: デフォルトの名無しさん (ワッチョイ da01-RqjC) [sage] 2019/08/09(金) 03:31:58 ID:P0R/OZlj0 >>889 なってもいいけどそのレベルで食っていけるかどうか知らん http://mevius.5ch.net/test/read.cgi/tech/1560763630/891
892: デフォルトの名無しさん (ワッチョイ 7663-iNuD) [sage] 2019/08/09(金) 07:05:24 ID:wDIMdjXm0 今食っていけてるんだから大丈夫だろ http://mevius.5ch.net/test/read.cgi/tech/1560763630/892
893: デフォルトの名無しさん (ワッチョイ 9501-xky6) [sage] 2019/08/09(金) 07:11:48 ID:UutwPLbs0 >>889 やりたいならやればいい 人にやめとけって言われたらやめるのか? 人に聞くことじゃないぞ http://mevius.5ch.net/test/read.cgi/tech/1560763630/893
894: デフォルトの名無しさん (ワッチョイ 7144-1zmT) [] 2019/08/09(金) 23:21:54 ID:DquSwjO80 今は製造管理部や。いつかはシステム系の仕事がしたい http://mevius.5ch.net/test/read.cgi/tech/1560763630/894
895: デフォルトの名無しさん (ワッチョイ 9501-C+Ts) [sage] 2019/08/10(土) 22:18:15 ID:J1bMQiAW0 Ansibleでもやってろ http://mevius.5ch.net/test/read.cgi/tech/1560763630/895
896: デフォルトの名無しさん (ワッチョイ fda0-+P8T) [sage] 2019/08/11(日) 19:14:52 ID:NrvveISi0 コピペ事務員がC言語で何すんの? システム系って具体的になにがやりてーの? http://mevius.5ch.net/test/read.cgi/tech/1560763630/896
897: デフォルトの名無しさん (ワッチョイ 45f6-X5Lh) [sage] 2019/08/11(日) 19:58:13 ID:XjjjEpxU0 ウサギとカメだなw http://mevius.5ch.net/test/read.cgi/tech/1560763630/897
898: デフォルトの名無しさん (アウアウウー Sa39-1zmT) [] 2019/08/11(日) 22:26:43 ID:DBEcd/Mha >>896 くみこみ http://mevius.5ch.net/test/read.cgi/tech/1560763630/898
899: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [sage] 2019/08/12(月) 14:25:50 ID:awsnfbDbp C言語を趣味で勉強し始めて、苦C、プログラム言語Cを読んだだけでまだまともなプログラムを書いたことない者です。 実践を兼ねて職場で使えるプログラムを書いてみようと思っています。 職場環境がセキュリティの関係で新しいソフトなど入れられず、エクセルは元から入っている状況です。 やりたいことは日付と紐付いた情報群(8/1,a=12,c=20: 8/3, b=30, c=40)を複数個入れて、特定の日付に最も近い情報を任意の順番で並び替えながら取り出す(8/5: 8/1, a=12; 8/3, b=30; 8/3, c=30)ということです。 C言語の勉強にと思ったのですがこの状況だとVBAを勉強してエクセルでマクロを組む方がいいでしょうか…ご教授願います>< http://mevius.5ch.net/test/read.cgi/tech/1560763630/899
900: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [sage] 2019/08/12(月) 14:34:08 ID:awsnfbDbp ごめんなさい。↑c=40でした。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/900
901: デフォルトの名無しさん (ワッチョイ 9501-xky6) [sage] 2019/08/12(月) 14:43:41 ID:TQ9KMPr70 CでもVBAでもなんでもできます http://mevius.5ch.net/test/read.cgi/tech/1560763630/901
902: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 15:04:39 ID:awsnfbDbp C言語で行う場合、どういう方法がいいでしょうか。 後出しで申し訳ないですが、コンパイラが無くpcで実行できるのがエクセルだけ、外部からテキストファイルすら入れられないpcです… http://mevius.5ch.net/test/read.cgi/tech/1560763630/902
903: デフォルトの名無しさん (ワッチョイ 9501-xky6) [sage] 2019/08/12(月) 15:22:31 ID:TQ9KMPr70 開発環境が無いのにどうやって動かす? http://mevius.5ch.net/test/read.cgi/tech/1560763630/903
904: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 15:30:27 ID:awsnfbDbp エクセル上でソースコード書いて動かす手段あればというご質問でした…超初歩的な質問ですみません 素直にVBA使います>< http://mevius.5ch.net/test/read.cgi/tech/1560763630/904
905: デフォルトの名無しさん (ワッチョイ 8963-cVv4) [sage] 2019/08/12(月) 15:31:34 ID:HBFUwOZh0 コンパイラすら入れられないならVBAでやったほうが絶対良いと思う。 というかすでにexcel上にあるデータに基づいた操作ならVBAでいいじゃん。 初心者の時点でCからexcelのデータ取り出すとか考えないほうが良いと思うよ http://mevius.5ch.net/test/read.cgi/tech/1560763630/905
906: デフォルトの名無しさん (ワッチョイ 9501-+P8T) [sage] 2019/08/12(月) 15:38:48 ID:TQ9KMPr70 どうしてもCでやりたいならCloud9とかオンラインIDE使う方法もある だけどセキュリティ厳しい職場はネット制限もあるだろうね http://mevius.5ch.net/test/read.cgi/tech/1560763630/906
907: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 15:40:37 ID:awsnfbDbp >>905 御回答ありがとうございました! C言語の勉強になればと思いましたが、VBAでやってきます! http://mevius.5ch.net/test/read.cgi/tech/1560763630/907
908: デフォルトの名無しさん (ワッチョイ da01-RqjC) [sage] 2019/08/12(月) 15:48:53 ID:Mc0sgLDk0 >>902 C#でCコンパイラとリンカを書けばいいだけ http://mevius.5ch.net/test/read.cgi/tech/1560763630/908
909: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 16:05:28 ID:awsnfbDbp >>908 ありがとうございます! 方法はあって皆様だと簡単にできることなのですね 少し調べたのですが、windowsに元々C#のコンパイラは入ってるのでそれを呼び出すということでしょうか まずVBAで完成させてから、こちらも勉強してチャレンジしてみます! http://mevius.5ch.net/test/read.cgi/tech/1560763630/909
910: デフォルトの名無しさん (ワッチョイ 45f6-X5Lh) [sage] 2019/08/12(月) 16:15:36 ID:xbNsqjWU0 >>902 そのpcってのは会社のPCか? コンパイラを入れられないなら、それを使うのは諦めろ C使いになれと会社が命じるのではなく C使いになりたいと自分が思うなら 必要なものは自分で揃えろ 今の会社を辞めても使えるスキルは個人資産だからだ ケチ臭いことばかり言ってしょぼい結果で終わるのか 自分を信じて大成するに相応しい投資をするのかは 人それぞれおまえ自身の生き方の問題だ http://mevius.5ch.net/test/read.cgi/tech/1560763630/910
911: デフォルトの名無しさん (ワッチョイ 9501-+P8T) [sage] 2019/08/12(月) 16:23:09 ID:TQ9KMPr70 C#でCコンパイラ書くのか。。。いばらの道だなw http://mevius.5ch.net/test/read.cgi/tech/1560763630/911
912: ◆QZaw55cn4c (ワッチョイ 3a47-WY/S) [sage] 2019/08/12(月) 16:28:48 ID:RCgkG17b0 >>911 これって商機?商機ならやってみたくなりますね… http://mevius.5ch.net/test/read.cgi/tech/1560763630/912
913: デフォルトの名無しさん (ワッチョイ 5595-+P8T) [sage] 2019/08/12(月) 16:30:41 ID:VzSWusfF0 s/商機/正気/g http://mevius.5ch.net/test/read.cgi/tech/1560763630/913
914: デフォルトの名無しさん (ワッチョイ 9501-+P8T) [sage] 2019/08/12(月) 16:32:16 ID:TQ9KMPr70 どっちにしろおかしいw http://mevius.5ch.net/test/read.cgi/tech/1560763630/914
915: デフォルトの名無しさん (アウアウカー Sa4d-O5Qm) [sage] 2019/08/12(月) 16:53:30 ID:YnHD16wNa powershellもなかなかいいぜ http://mevius.5ch.net/test/read.cgi/tech/1560763630/915
916: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 17:01:42 ID:awsnfbDbp >>910 心に響くアドバイスありがとうございます。 上から言われたことでは全くないので、自分にスキル残るようにやっていきます。 >>911 そういうことになるのですか…無謀ですね… リンカのことなど完全に無知なのでちゃんと調べてみます。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/916
917: デフォルトの名無しさん (アウアウウー Sa39-H0Mu) [] 2019/08/12(月) 17:13:23 ID:WrS1/BP6a 今このスレに書き込みしているのは自宅の自分のPCか?ならばそれ使って学習環境整えて学習すると良い。 PCなしでスマホしか持ってないみたいな場合はまずはPC買え。 学習だけならばスマホしか持ってなくてもできなくはないが今の時代はPCなしではまだかなりの困難を伴うと思って間違いなし。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/917
918: デフォルトの名無しさん (ササクッテロ Sp75-0ye8) [] 2019/08/12(月) 18:58:43 ID:awsnfbDbp >>917 自宅での開発環境は構築できているので、学習進めて行きます! http://mevius.5ch.net/test/read.cgi/tech/1560763630/918
919: デフォルトの名無しさん (ワッチョイ b161-JGwf) [sage] 2019/08/12(月) 23:48:36 ID:n9pQsVg70 >>874 結論的には、ローカル変数はスタック上に確保され、スタックには関数の呼び出し 元へマシン語の ret 文で帰るための「戻りアドレス」や、以前のスタックフレームの 先頭アドレスを保存しておくために、push ebp とした際の関数の呼び出し元の スタックフレームの ebp の値なども入ってる。 なので、ローカル変数として、TYPE a[10]; のような配列 a を確保して、 a[x] で x の範囲が 9 を超えた場合、その戻りアドレスが壊される確率がとても 高い。 1. 戻りアドレスがへんな値に書き換われば、関数から戻る際に変なアドレスに 戻ろうとする。するとコード領域以外のデータ領域に戻ろうとしたり、 ページングされて無い変なページに戻ろうとすることになり、保護例外 が発生する可能性が高い。またたまたま、そのアドレスに「戻った(実際には 戻ったわけではなく、変なアドレスに jmp しただけ)」際に、 新しいアドレスのマシン語が変な命令に解釈されて、高い確率で 何らかの保護冷害が発生する。 2. 関数の最後で pop ebp を実行してから、元の関数へ戻ると、 ローカル変数は、mov [ebp+ofs],eax のような形でアクセスされる。 だから、スタックが変に書き換わっていた場合、ebp が変なアドレスになり、 [ebp+ofs]のアクセスの部分で保護例外が起きる。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/919
920: デフォルトの名無しさん (アウアウエー Sa02-O5Qm) [sage] 2019/08/13(火) 00:08:44 ID:bI98bSLia よくわからんが、retして顕在化する問題の発生が増えたってこと? http://mevius.5ch.net/test/read.cgi/tech/1560763630/920
921: デフォルトの名無しさん (ラクペッ MMdd-u6+H) [sage] 2019/08/13(火) 01:31:47 ID:l5EJHg1rM 20年ぐらい前からという条件なら特に変わりは無いだろう http://mevius.5ch.net/test/read.cgi/tech/1560763630/921
922: デフォルトの名無しさん (ワッチョイ 5563-iNuD) [sage] 2019/08/13(火) 06:54:43 ID:tpzkwMyE0 それ以上前はCPUが8086だった… http://mevius.5ch.net/test/read.cgi/tech/1560763630/922
923: デフォルトの名無しさん (ワッチョイ 45ab-dKkF) [sage] 2019/08/13(火) 07:02:22 ID:0//4zuKx0 寒いな http://mevius.5ch.net/test/read.cgi/tech/1560763630/923
924: デフォルトの名無しさん (アウアウウー Sa39-H0Mu) [] 2019/08/13(火) 09:45:48 ID:2qtnUYLta いわゆる普通の Windows PC だとそんな感じかな?中身が Windows NT のやつになってよりまともな感じのOSになったと。 しかし他のOSやCPUでは約20年前からとか、そういうのはない。あったとしても時期が違う。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/924
925: デフォルトの名無しさん (ワッチョイ 7663-+P8T) [sage] 2019/08/13(火) 09:56:43 ID:AAd69x7F0 NTになってからも、この現象は起きます http://mevius.5ch.net/test/read.cgi/tech/1560763630/925
926: デフォルトの名無しさん (ワッチョイ b17c-JGwf) [sage] 2019/08/13(火) 10:26:31 ID:rjuNmU8i0 >>920 OSがプロテクトモード(保護モード)で動作して、アプリが保護違反をしてないかCPUが常に監視 しながら動くようになってからはその辺の事情は特に変わってない。なお、 スタックフレームは、 関数名 proc push ebp mov ebp,esp sub esp,定数値 ・・・ mov esp,ebp pop ebp ret 関数名 endp のような形式になっていて、もしローカル変数として配列を確保して、それが バッファオーバーランした書き込みを行った場合、上記の pop ebp で変なアドレス がebpに入り、retで変なアドレスへ飛ぼうとする。変なアドレスに飛ぼうとしたら そこで保護例外が起きる確率が高くなる。また、上記の関数の構造は、関数を 呼び出した親の関数でも同じなので、そこでも、祖父の関数へ戻る際、 最後の方で mov esp,ebpという命令が実行される。しかし、今言ったように ebpに狂ったアドレスが入ってしまっていれば、この命令で esp = ebp とされようとしたときにセグメンテーション・フォールトが起きる可能性が 高くなる。espへの代入は、保護に関して他のレジスタへの代入とは違う 特別な処理がされており、ss というスタックセグメントの範囲から逸脱していないか、 また、espが4で割り切れる値になっているかどうかのチェックが入る。 それは普通のページング・フォールトのチェックだけよりも調査項目が増えるので より厳しくなる。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/926
927: デフォルトの名無しさん (アウアウエー Sa02-O5Qm) [sage] 2019/08/13(火) 10:32:41 ID:bI98bSLia だから、何が変わったのか言えよ http://mevius.5ch.net/test/read.cgi/tech/1560763630/927
928: デフォルトの名無しさん (ワッチョイ b161-JGwf) [sage] 2019/08/13(火) 10:40:59 ID:+uxvNwqI0 >>926 ・ret文で変なアドレスに飛ぼうとした場合、そのページが実行属性が付いていない 場合や、そもそもページングされて無いアドレスであればページ例外が起きる。 さらに、たまたまそのチェックがすり抜けても飛んだ先の命令列のうちのどこかが、 存在しない命令パターンだったり、アプリでは使ってはいけない命令に なってしまっている確率も結構、高頻度で有ってその場合「不法命令外」 というものが生じる・ ・esp=ebpにされる際、espが4で割り切れるかどうかのチェック入る。だから、 スタックが破壊された場合、3/4(4分の3)、即ち75%の確率でここで スタック保護例外が生じる。また、スタック・セグメントの範囲チェックで、 大体、50%〜90%くらいの確率で異常が発見される。そして、これら二つの チェックで異常が発見される確率は、1-(1-0.75)*(1-0.5〜0.9)程度の確率となる。 となり、僅かでもスタックのebpの保存場所にバッファオーバーランが派生した場合、 結構な高確率で異常が発見される。大体、これだけでも、9割以上。 ・上記は、偶然に異常が発見される確率。全ての確立を総合すると、 1-(1-p_1)(1-p_2)・・・(1-p_n) のような形で偶然にして異常が発見されるが、 チェック項目の個数 n が十分大きいと、割と即座に近い時期に異常がたまたま発見される 確率は、99%位になっても不思議は無い。これは数学の話。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/928
929: デフォルトの名無しさん (ワッチョイ b161-JGwf) [sage] 2019/08/13(火) 10:42:39 ID:+uxvNwqI0 >>928 誤:なってしまっている確率も結構、高頻度で有ってその場合「不法命令外」 正:なってしまっている確率も結構、高頻度で有ってその場合「不法命令例外」 http://mevius.5ch.net/test/read.cgi/tech/1560763630/929
930: デフォルトの名無しさん (アウアウエー Sa02-O5Qm) [sage] 2019/08/13(火) 10:48:21 ID:bI98bSLia 確立って書くのは例外なくアホ http://mevius.5ch.net/test/read.cgi/tech/1560763630/930
931: デフォルトの名無しさん (ワッチョイ b17c-JGwf) [sage] 2019/08/13(火) 10:50:03 ID:rjuNmU8i0 変換ミスだよ。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/931
932: デフォルトの名無しさん (スッップ Sdfa-MjoS) [sage] 2019/08/13(火) 11:41:48 ID:/0JIigTLd フン、難しすぎてチンプンカンプンだぜ http://mevius.5ch.net/test/read.cgi/tech/1560763630/932
933: デフォルトの名無しさん (ワッチョイ b17c-JGwf) [sage] 2019/08/13(火) 12:09:25 ID:rjuNmU8i0 >>927 20年前1999年くらいに起きた変化だとすれば、単純にOSがCPUのプロテクト モード(保護モード)で(ちゃんと)動作するようになった影響だと考えられる。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/933
934: デフォルトの名無しさん (ワッチョイ 7663-+P8T) [sage] 2019/08/13(火) 12:15:52 ID:AAd69x7F0 まだちゃんと動作していないよ CPUがなんちゃってプロテクトモードだから http://mevius.5ch.net/test/read.cgi/tech/1560763630/934
935: ◆QZaw55cn4c (ワッチョイ 3a47-WY/S) [sage] 2019/08/13(火) 12:16:04 ID:RSblMGL30 >>933 ユーザーアドレス空間をいちいちチェックしているとは思えませんが… http://mevius.5ch.net/test/read.cgi/tech/1560763630/935
936: デフォルトの名無しさん (アウアウウー Sa39-H0Mu) [] 2019/08/13(火) 12:41:24 ID:2qtnUYLta 95や98とXPは違う、っていうなら単純にOSの違いが影響していると思われ http://mevius.5ch.net/test/read.cgi/tech/1560763630/936
937: デフォルトの名無しさん (ワッチョイ b17c-JGwf) [sage] 2019/08/13(火) 14:07:38 ID:rjuNmU8i0 >>935 プロテクトモードだとCPUが常にチェックし続けてますよ。 3.5GHzとかで、1命令実行するたびにチェックしながら動いています。 ハードウェアレベルでそういうチェック機構がCPUの内部に入っているので。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/937
938: デフォルトの名無しさん (ワッチョイ 45f6-X5Lh) [sage] 2019/08/13(火) 16:10:25 ID:74dfGXTi0 ソフトと違い、ハードでのチェックは処理時間を遅延させないからな http://mevius.5ch.net/test/read.cgi/tech/1560763630/938
939: デフォルトの名無しさん (ワッチョイ 9501-InMM) [sage] 2019/08/13(火) 17:04:27 ID:5q1NdOKU0 >>938 厳密にはそれは言い過ぎ。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/939
940: デフォルトの名無しさん (ワッチョイ 45f6-X5Lh) [sage] 2019/08/13(火) 17:08:00 ID:74dfGXTi0 V=Rは速いとか言いたいのか? http://mevius.5ch.net/test/read.cgi/tech/1560763630/940
941: デフォルトの名無しさん (ワッチョイ da01-RqjC) [sage] 2019/08/13(火) 17:48:57 ID:b87Bd4Qh0 最近はあまりないけどMMUの処理で1サイクル遅延するハードとかもあったよ 要するに「常に」処理時間を遅延させないってわけじゃないってことな http://mevius.5ch.net/test/read.cgi/tech/1560763630/941
942: デフォルトの名無しさん (ワッチョイ b17c-JGwf) [sage] 2019/08/13(火) 19:33:45 ID:rjuNmU8i0 >>941 現代のCPUでは、パイプラインを使っているのである程度重い処理であっても、 速度低下には繋がらないような仕組みがあります。 結構複雑なMMUの処理が入っても1命令の実行速度の低下は全く無いことが 多いです。 http://mevius.5ch.net/test/read.cgi/tech/1560763630/942
943: デフォルトの名無しさん (ワッチョイ 5563-iNuD) [sage] 2019/08/13(火) 19:56:23 ID:tpzkwMyE0 そこまでやってくれるのにバッファオーバーラン自体はチェックしてくれんのですか http://mevius.5ch.net/test/read.cgi/tech/1560763630/943
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 59 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s