- 1 名前:デフォルトの名無しさん [2018/09/19(水) 17:56:50.83 ID:XSTNMnDwa.net]
- 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言語なら俺に聞け 147 mevius.5ch.net/test/read.cgi/tech/1534430162/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 461 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 00:53:49.78 ID:mUWBdCHT0.net]
- 言語作ろうぜ
あるいはハード作ろうぜ
- 462 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 13:35:46.44 ID:8vGviIsrM.net]
- ここのレベルじゃ無理
- 463 名前:デフォルトの名無しさん [2018/09/30(日) 19:56:21.83 ID:KPqVv5wd0.net]
- とりあえず昔のC++みたいにC言語へのトランスレーターで作っとけよ。
- 464 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 20:08:07.13 ID:pfgCoU5B0.net]
- 昔々、とあるマクロ言語を開発してた頃はyacc/lex(bison/flex)を使ってたんだが、今どきもこういうコンパイラコンパイラを使ったりするんだろうか?
- 465 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 20:08:42.93 ID:PasHsNHY0.net]
- >>441
ForthってMINDのベースって事くらいしか知らない
- 466 名前:デフォルトの名無しさん [2018/09/30(日) 20:25:52.96 ID:CSkWhxVk0.net]
- sedとかで十分なことでもgoでパーサ使う人はいるな
- 467 名前:デフォルトの名無しさん [2018/09/30(日) 21:41:15.10 ID:ZDEBOTA70.net]
- 質問です。
ソースが公開されてないライブラリを使用していまして その中に特殊なファイルを読み込む関数があります。 事情があってその特殊なファイルを暗号化して保存したいのですが 暗号化してしまうとそのライブラリの関数から直接読み込めません。 暗号を解除する関数を通してそれが一時ファイルを吐けば可能ですが 大量にあるので出来ればもっと良い方法があればそれを採用したいと思っています。 例えば暗号解除後そのままメモリをファイルの様に扱う等は出来ないでしょうか? よろしくおねがいします。
- 468 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 21:50:14.42 ID:pfgCoU5B0.net]
- >>453
OSが分かんないけどtmpfsとか駄目なの?
- 469 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:13:05.28 ID:vpsmo7Y3a.net]
- read/writeを包んじゃうとか。LD_PRELOAD的な。
実行中のメモリが読めるならなんでもありという気もするが
- 470 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:17:19.98 ID:ZDEBOTA70.net]
- >>454-455
さっそくありがとうございます!OSはWindowsです。 方法はありそうですね? 教えてもらったキーワードで自分でも少し調べてみます!
- 471 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:21:51.99 ID:6gTyS6vx0.net]
- そのライブラリの特殊なファイルを読み込む関数のインターフェースはファイル名を求めているのだろうか?
それともファイルへのハンドルを求めているのだろうか? 前者と仮定してうまく凌ぐ方法はあんのかな? 名前付きマッピングオブジェクトかなんか?
- 472 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:25:01.08 ID:ZDEBOTA70.net]
- >>457
ありがとうございます。ファイル名です。 OSはWin10です。
- 473 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:27:41.29 ID:ZDEBOTA70.net]
- tmpfsはWinだと使えないのですね?残念です。これはまさに理想的だったので。
LD_PRELOADは関数を上書きできるのですね。こちら更に調べてみます。
- 474 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 00:45:26.18 ID:0BEK1cUt0.net]
- どれもWindowsじゃ無理っぽいですね… tmpfsが使えれば一番よかったんですが。
- 475 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 03:15:04.29 ID:p5nbtFpra.net]
- FILE*で文字を直接参照するのと一旦文字の配列にコピーして参照するのとでは速度差はありますか?
- 476 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 04:00:25.04 ID:2PPz6CoJ0.net]
- コピーするのに、メモリ・時間を使うから、
コピーしない方が速い
- 477 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 05:28:57.52 ID:qsdLJDx40.net]
- >>461
コピーせずに直接参照ってどうやるの?
- 478 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 05:37:04.66 ID:kFV2gm8E0.net]
- >>460
WindowsでもRAMDiskは作れる(そういうツールがある)けど、エレガントな方法はファイル系のAPIをHookするって手もあるかな?
- 479 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:06:42.48 ID:Qvezncj/0.net]
- >>412
これなんてエディタ? 秀丸?
- 480 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:25:37.38 ID:bI30HRk50.net]
- Spyderだろ
- 481 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:27:43.52 ID:2PPz6CoJ0.net]
- メモリファイルは無いの?
- 482 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:33:21.48 ID:UNHR2HPsx.net]
- メモリマップトファイルが使えれば良いんだけど、バイナリ提供内部でファイル名で直接CreateFileしちゃってるなら難しいんじゃないかな?
俺が知らないだけでうまい方法があるかもだけど。
- 483 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:51:55.51 ID:7/sdPVVo0.net]
- >>453
ちなみにどんなファイルを読むライブラリなの? 比較的単純なら自分で書き直す方が早いんじゃね?と思ったり。 sqlite みたいなのになってくると手に負えなそうだけど。
- 484 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 10:05:04.00 ID:5qQ+3kFva.net]
- 暗号化したボリュームに書き込みたいとかいう話ではないんだよな
- 485 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:02:16.95 ID:qsdLJDx40.net]
- ファイルマッピングだって、結局はディスク上のファイルイメージをメモリにキャッシュするだけだぞ
ライトバックキャッシュなので「書き戻せ」というコマンドを自分では書かないから 何か特殊なもののように誤解されやすいが、 ハード的にCSやWEがチャネルコマンドに変換されるとかそういうことは一切ない
- 486 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:05:58.57 ID:AKKTs5+S0.net]
- 名前付パイプ渡してうまくいくといいなー ぐらい
- 487 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:18:15.13 ID:e2K2pEIVa.net]
- パス名でしか読み込めないクソライブラリをありもので解決するならramdiskしかないな
ライブラリを修正できるなら俺だったら読み込み処理をコールバックにする
- 488 名前:459 mailto:sage [2018/10/01(月) 12:26:59.19 ID:0BEK1cUt0.net]
- みなさんありがとうございます。むずかしそうですね…
ファイルの仕様も公開されてないので自分で描き直すのもむずかしいです… 理想的な流れとして以下のように出来ればいいのですがむずかしいのですかね… 1 暗号化したファイル読み込み 2 暗号解除 3 メモリに元ファイルとして生成 4 ファイル名を元ファイルを読み込む関数に渡してメモリ上のファイルを読み込む
- 489 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:28:50.21 ID:0BEK1cUt0.net]
- >>473
ramdiskですか。ちょっとそちらで調べてみます。ありがとうございます。
- 490 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:47:38.04 ID:AKKTs5+S0.net]
- ramdisk も中間ファイル書き出してその名前を渡すのとかわらんでしょ
いずれにしろ復号済みのファイルが実体化しちゃってる
- 491 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:57:10.39 ID:UNHR2HPsx.net]
- >>474
難しいというか、技術的な実現方法はいくつか思いつくけど要件がよく分からないのでこれにすべきと言えないだけ。
- 492 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:02:33.93 ID:e2K2pEIVa.net]
- >>475
面倒な手順だけど、fuse+ramfsってのもあるか windowsにramfsがあるか知らんけど
- 493 名前:デフォルトの名無しさん [2018/10/01(月) 13:15:50.57 ID:yvyswmJaa.net]
- >>474
RAMディスクなら速いだろうけど普通のファイルシステムとアクセス方法は同じだから普通にディスクにファイル作っても同じだよ。 そのディスクがSSDならば正にRAMディスクだしな(ちょっと遅いかも知れないが)。 そのファイルは本当にRAMディスクのような高速アクセスできるようなファイルシステム上に作らねばならないものなのか?
- 494 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:19:01.59 ID:0BEK1cUt0.net]
- >>476-478
みなさんありがとうございます。 要件としては元のファイル自体が公開されているライブラリで読み込めてしまうのでそれを防止したいんです。 ようは簡単に読み込めなく出来ればいいだけなんですね。 >>474でも一応メモリ内に復号後のものが実体化されちゃいますがとりあえずこれが出来ればいいかなと。 もう少し自分でも色々調べてみます。
- 495 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:21:27.31 ID:AKKTs5+S0.net]
- >>480
メモリ内だけじゃなくエクスプローラから丸みえだし、ファイルも普通に読み書きできるよ? <ramdisk
- 496 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:24:04.57 ID:0BEK1cUt0.net]
- >>479
なんというか単に目に見えるところに作りたくないというだけなんですね。 原理的には読めちゃうんだと思いますがとりあえず素で通常のディスクに書き出すよりは少しはマシかなと。
- 497 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:25:19.86 ID:0BEK1cUt0.net]
- >>481
ramdiskはそうなんですね… それだとマズイなあ… やっぱり見えない形で展開できればいいんですが。
- 498 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:30:03.85 ID:UNHR2HPsx.net]
- RAMDiskをNTFSでフォーマットして適切なPermission管理すれば良いんじゃね?
- 499 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:40:12.23 ID:0BEK1cUt0.net]
- あとRAMDiskについては使用者のPCに勝手にそういう領域を作っても問題ないのかも気になりました。
アプリが終了すれば常に確実に領域がクリアされ解放されればいいんですが何かのアクシデントで残ってしまわないかとか。 もうちょっと自分でも色々考えてみます。
- 500 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:13:49.93 ID:2kmJAioya.net]
- 隠蔽か
- 501 名前:ツ高揮発?を実現したいということならいろいろありそう。
windowsのfuseって昔あったよな。 [] - [ここ壊れてます]
- 502 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:51:25.74 ID:tOl4q5VhM.net]
- Windows詳しいマンはおらんのか
- 503 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:56:04.14 ID:n3AkgheKM.net]
- だからAPI Hookだって。
- 504 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 17:27:27.14 ID:sRgrdSMiM.net]
- すでに出てるけど、名前付きパイプかファイルマッピングオブジェクトじゃいかんのか
- 505 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 17:41:52.83 ID:qsdLJDx40.net]
- Windowsの話してやってんのに通じないやつが何か文句言ってらあ
- 506 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 19:43:43.06 ID:3ZN7cetya.net]
- パス名経由でしか読み込めないんだからありもので対処するならOS経由の手段に限られる
クソライブラリに手を加えられないなら自作するかramdiskで我慢するしかないよ
- 507 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 20:18:05.62 ID:xRBX1/Y3M.net]
- もちろんwindowsの話なんだけどな
- 508 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 20:50:02.06 ID:73T+9RSN0.net]
- >>488 狙うとすれば ReadFile あたりだろうけど、あまりに根っこ過ぎて
ちゃんと狙い撃ちしたい箇所だけに限定できるのか正直わからんところ
- 509 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:43:55.95 ID:n3AkgheKM.net]
- >>493
狙うならCreateFileだと考えてた。 予めメモリマツプトファイルに復号化しておいてそのハンドル返せば、後はReadFileはHookしなくても煮るなり焼くなり好きにしてもらったら良いと。
- 510 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:58:38.38 ID:2kmJAioya.net]
- dropboxとか具体的にどういう技術なん?
- 511 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 22:54:48.81 ID:2yHgzixG0.net]
- APIHookかVFSを自分で実装するかになるんじゃね
前者の方が簡単そうだな
- 512 名前:デフォルトの名無しさん [2018/10/01(月) 23:58:25.83 ID:zfKNS/F/0.net]
- CreateFileMappingにわたすCreateFileのファイルハンドルは
すでにファイルシステムと関連付けられたファイルハンドルになる メモリならINVALID_HANDLE_VALUEを渡す ドキュメントにしっかり書いてあるのに 相変わらず低学歴知恵遅れは 口からデマカセの頭悪いテキトーなことばっかりいってるわ。。。
- 513 名前:デフォルトの名無しさん [2018/10/02(火) 00:01:04.71 ID:R8M7QKDK0.net]
- そもそも質問してるヤツはファイルシステムに復号化されたファイルができるのがダメといってるのに
相変わらずだわ。。。
- 514 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 00:19:59.97 ID:9fPP7dMwM.net]
- ならばどうする半角よ
貴様の格の違いを見せてやれ
- 515 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 00:24:37.79 ID:69sVZg4Ka.net]
- この流れで初書き込みだけどソースが公開されていないで思いどうりに読み込めないのであれば自分で実装したほうがいいんじゃね
バイナリモードで読み込めばいいんじゃないの
- 516 名前:デフォルトの名無しさん [2018/10/02(火) 00:31:01.73 ID:Cp0nvcbE0.net]
- また自演か
- 517 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 00:35:23.62 ID:nity8XPfa.net]
- 499だけどオレが自演って事になってるのか?
- 518 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 00:40:31.83 ID:6wQ+/Q1Ma.net]
- dropboxは非同期にrsyncみたいなことしてる感じだな。
ここで求められてるのは同期だね
- 519 名前:デフォルトの名無しさん [2018/10/02(火) 00:55:56.80 ID:R8M7QKDK0.net]
- 検討がつかない
そもそも使ってる関数のソースが未公開の前提らしいからな 中でなにやってるかなんかまったく分からんからこういう質問してるんだろうしな きっとReadFileを呼んでるのだろうという程度のことしか分からない それは質問してるヤツもその程度は分かってるハズ そして、そのファイルを読み込む関数のインターフェースもよく分からない ファイルハンドルを渡すのかファイルパス渡すとかも分からない 情報が一切ないから検討しようがないといいたいが 両方とも検討した結果、簡単ないい方法が思いつかない 別プロセスにしてCONIN$使うとかインチキくさい方法ぐらいしかパッと思いつかなかった でな、この要件に至るまでの根本的な部分について知りたい その暗号化したファイルを今までどうやって出力してたかという部分に
- 520 名前:ネる
読み込みはその操作と逆の操作をすればいいハズだからな もし暗号化して出力するときに、平文のファイルを一時的にテンポラリに出力してから暗号化してるなら 入力するときに平文のファイルを一時的にテンポラリに出力するのは許容範囲になると言い張れれば コレで解決する コレでイケルハズ [] - [ここ壊れてます]
- 521 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 01:03:57.23 ID:6wQ+/Q1Ma.net]
- そうじゃなくて、生データを隠したいんじゃないか?
- 522 名前:459 mailto:sage [2018/10/02(火) 02:49:53.61 ID:qS1Sk5MG0.net]
- みなさん色々と案をありがとうございます。
あれから自分で調べたり考えたりしてたんですが どうにかファイルの構造を知る事が出来そうで 中身を自分で書き換える(復号化ロジック込みの読み込み関数を書く)事にしました。 非常にお騒がせしてしまいまして申し訳ございませんでした!
- 523 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 04:36:17.92 ID:yoF3UpeG0.net]
- Cのテスト関係のツールでおすすめとかありますか?
業務ではなく個人の趣味としてのプログラミングなので,できれば無償・オープンソースなのがいいです。 https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C ここを見ると,やはりCに関しても単体テストが最適なようですが…
- 524 名前:デフォルトの名無しさん [2018/10/02(火) 04:42:42.21 ID:Cp0nvcbE0.net]
- 本当に自演が大好きなんだな
- 525 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 06:50:29.85 ID:yoF3UpeG0.net]
- ? え,もしかして俺に対して?
そうだとしたら まったくの言い掛かりなんだけど……。 純粋に,単体テストのおすすめを訊きたいだけ。
- 526 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 11:07:45.33 ID:Yfg2/nZYa.net]
- >>509
世の中のすべてが自演に見えちゃう病気の人かも知れないから、スルーしておけばいいんじゃない?
- 527 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 11:08:35.53 ID:EEmEj/et0.net]
- まーた自演か
- 528 名前:デフォルトの名無しさん [2018/10/02(火) 12:14:34.37 ID:RjhRAQY1a.net]
- まーた自演か
- 529 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 13:22:40.96 ID:kk/2dA0Y0.net]
- 「自演じゃないもん」なんて弁明しても証明できないところで相手すんなよ
無駄なことをする姿がバカっぽいぞ
- 530 名前:デフォルトの名無しさん [2018/10/02(火) 13:39:01.10 ID:RjhRAQY1a.net]
- 自演じゃないもん
- 531 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 19:19:05.31 ID:Fj/XybmQM.net]
- ウィザードブックで勉強したって方いますか?
Cのレベル上げにも役立つかしら・・・
- 532 名前:デフォルトの名無しさん [2018/10/02(火) 20:40:47.26 ID:R8M7QKDK0.net]
- ココまでオレのジエン
- 533 名前:デフォルトの名無しさん [2018/10/02(火) 20:51:11.45 ID:hjXu6C7/a.net]
- >>515
ウィザードブックってなに?
- 534 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:53:08.03 ID:pF626ax10.net]
- 魔法使いがevalとapplyの球もってる奴じゃね
- 535 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 22:09:38.52 ID:Fj/XybmQM.net]
- 愛称違ったっけ?
『計算機プログラムの構造と解釈』です >>518 です λのやつ
- 536 名前: mailto:sage [2018/10/02(火) 22:37:55.33 ID:WWljJiuT0.net]
- >>519
一般の人間が翻訳に参入しているようですね
- 537 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 00:45:37.81 ID:+GJzyh+A0.net]
- >>519
愛称はSICPな。 sicpvn.sdf.org/smug.jpg つか、全文訳されて公開されてるのな。 https://github.com/minghai/sicp-pdf/ 詳細は以下。 https://qiita.com/kaz-yos/items/d1ecd4bfe9989c290e99 https://cpplover.blogspot.com/2016/05/mitsicp.html なお、俺は読んだこと無い。
- 538 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 04:12:13.38 ID:zPlOwhsg0.net]
- またトリップ付けないで書き込みしたの?
荒らしはもうやめておいた方が良いと思う
- 539 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 06:56:42.02 ID:R1dsfyjz0.net]
- >>522
>またトリップ付けないで書き込みしたの? >荒らしはもうやめておいた方が良いと思う トリップつけないで書き込みするとどうして荒らしになるのですか? というか、ほとんどの人がトリップをつけていないので、5ch は荒らしだらけ、ということですか?
- 540 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 07:02:45.12 ID:IEc6BJqm0.net]
- アホは相手すんな
- 541 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 15:15:05.37 ID:KwJqXPANY]
- 配列について質問があります
char a[3][5]; char a[2][4] = 'A'; printf("%c\n", *(*(a+2)+4)); //Aを表示
上記の*(*(a+2)+4)の部分において *(a+2)がa[2]の実体を示していて、次に+4がされていることが不思議です これだと、a[2]+4ということになりますよね? このa[2]+4がよく分かりません。どういうことなのか教えていただきたいです どうぞよろしくお願いいたします
- 542 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 10:05:15.64 ID:DxqDA2/Ip.net]
- https://i.imgur.com/BsiX5iK.jpg
添削お願いします。
- 543 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 10:17:32.97 ID:6zSKEd8l0.net]
- >>526
minute と second は while の中のスコープで宣言するといい。 あと second を printf する時、お前のやりたいことは多分 %02d でできる。 0詰め2桁表示ね。
- 544 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 10:21:58.92 ID:3s3m6VbBM.net]
- sleepは1秒待ってくれるとして、
前後の処理がどうしても正確に0秒でできるわけではないので誤差が溜まっていく。 定期的にシステムの時刻を見て秒の変わり目を検出するほうが正確。
- 545 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 10:26:30.21 ID:6zSKEd8l0.net]
- >>526
これはこうすべきってことでないけど、画面を消す clear、これが何をやってるか調べると面白いかもよ。 とりあえず clear > log とかやって log に何が書かれてるか見てみるといい。 次に cat log とやると何が起こるか確かめてみるといい。 これがわかると画面を消すのに clear なんて外部コマンドを使わなくてもよくなる。
- 546 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 10:44:56.64 ID:uhmiVRnQa.net]
- >>526
whileとelseは直後に空白あける。
- 547 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:16:24.26 ID:DxqDA2/Ip.net]
- https://i.imgur.com/ldQVwUT.jpg
↑ソースコード https://i.imgur.com/eCYNPsi.jpg ↑実行結果 となりました。 「set number」と「syntax on」を初期設定したいのですが、どうすればいいですか?
- 548 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:16:46.89 ID:FRcGP58U0.net]
- free run counter
- 549 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:19:04.80 ID:DxqDA2/Ip.net]
- あと、iPhoneのタイマーと比べた結果カウントが遅くなっていたことがわかりました。これは前後の関数を実行する際にノータイムでは出来ないことが原因だと考えられます。
- 550 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:20:50.09 ID:6zSKEd8l0.net]
- >>531
ちょっとまて、>>529 を試そうとしてる雰囲気だけど、clear > log とか cat log はソースコードに埋めるんじゃなく、コマンドラインとして叩くんだよ。
- 551 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:44:12.58 ID:DxqDA2/Ip.net]
- https://i.imgur.com/5usTieQ.jpg
流れが速くて打てません。
- 552 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:54:29.41 ID:DxqDA2/Ip.net]
- while の中でminute,secondを宣言したら回るたびに宣言する事になるので、なんかダメだと思いました。
あと、ちゃんとしたタイマーを作るにはどうすればいいのか知りたいです。
- 553 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:56:56.95 ID:aS2keCHZa.net]
- 画面が流れるんでなくて、部分的に書き換えたい感じ?
cursesを使うのじゃ
- 554 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 12:03:40.55 ID:3s3m6VbBM.net]
- 教え方の下手くそな教えたがりばかりで
あげくにcursesまで初心者に吹き込んで質問者大混乱
- 555 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 12:22:47.81 ID:NVTQRcnQa.net]
- >>526
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
- 556 名前:デフォルトの名無しさん [2018/10/05(金) 12:23:53.35 ID:G8OY4AG7d.net]
- そこは教え方の上手なあなたが教えてあげれば良い事だな
- 557 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 12:50:10.63 ID:cQzHZ22n0.net]
- >>539
歴史に残る名言だなw
- 558 名前:デフォルトの名無しさん [2018/10/05(金) 12:50:15.78 ID:qaFHFmCDa.net]
- >>539
それ、もういいですから。
- 559 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 13:01:08.97 ID:vpbu8eze0.net]
- clear > log
cat log Linux の基本コマンドも知らないような奴が、C をやるな! 10年勉強してからやれ
- 560 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 13:01:39.72 ID:6zSKEd8l0.net]
- >>535
>>529 で言ってるのは >>526 の実行とは別の話。 画面を消す方法の正体を調べる手順だから、ヒマな時にやればいい。 >>536 宣言はコンパイル時に解釈されるもので、実行時に「宣言という動作」を行っているわけじゃない。 だから実行時にかかるコストは無いから、ループの中に書いてもいい。 C は変数が見える範囲(スコープ)が { } の中になってる。 minute と second は while で回してる { } の中でしか使ってなく、かつ表示のための一時的な変数だから、それを必要とする範囲内だけで見えるようにすると分かりやすくなる。 変数のスコープは極力狭くなるように書くといいよ。 分かりやすさの点でもいいし、メモリ(スタック)の消費量も少なくなる。 正確なタイマーを作るならインターバルタイマーで調べてみるといいけど、まだそれを使えるレベルじゃないと思う。 >>538 curses ってなに?
- 561 名前:デフォルトの名無しさん [2018/10/05(金) 13:03:13.60 ID:qaFHFmCDa.net]
- >>536
1秒ごとに setitimer() とか使って割り込み掛かればいいんだけどね、普通のOSだとあまり正確にではないかも知れない。しかしただsleepするよりは正確だと思う。 割り込み使わないやり方で今と似ているけどましなやり方は次の処理開始時間までより正確に sleep することだ。 これは gettimeofday() でμ秒までの時刻を取得して秒が変わるまで何μ秒なのか計算して usleep() で sleep させればできる。
|

|