[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/19 16:45 / Filesize : 311 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part132



1 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:11:34.01 ID:nc/5PI4P0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part131
mevius.2ch.net/test/read.cgi/tech/1501295308/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
mevius.2ch.net/test/read.cgi/tech/1500329247/

■長いソースを貼るときはここへ。■
 codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

2 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:12:56.93 ID:nc/5PI4P0.net]
散々スレ散らかしておいて挙句誰もスレ立てないとか何なんだよおい

3 名前:デフォルトの名無しさん [2017/10/10(火) 00:17:51.84 ID:UbDU2trc0.net]
>>1

4 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:20:07.57 ID:QENrkQd80.net]
swap(a,1);

5 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:34:49.46 ID:xPjXx2fY0.net]
int&& x=1;
乙 << x;

6 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:37:53.16 ID:xPjXx2fY0.net]
swap(T& x, T& y) { T tmp = x; x = y; y = tmp; }を
swap(T&&x, T&& y) { T&& tmp = x; x = y; y = tmp; }とかやったら死ぬ気しかしない

7 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 02:42:57.50 ID:wYOMkRRU0.net]
2 名前:デフォルトの名無しさん (ワッチョイ bf54-lR6P)[sage] 投稿日:2017/03/31(金) 16:52:18.52 ID:CoeIAoH10
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

---- テンプレ ここまで ----

8 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 12:31:02.91 ID:EzEz7dGm0.net]
テンプレに
>>970が建ててね
辺りを追加しとこうぜ

9 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 15:13:46.21 ID:S8JfuHhfd.net]
開発的なお話で単純に構造体の要素を一つ追加するって危険な行為でしょうか?

10 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 15:40:18.46 ID:NgeFZ2kOM.net]
質問がふわふわし過ぎ
そんなんじゃまともな回答は無理

個人的には
メンバをひとつ追加する程度で
破綻のリスクが増えるというなら
それは元々破綻していて
表面化していないだけだろうと思うが



11 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 16:32:52.19 ID:S8JfuHhfd.net]
>>10
ふわふわしすぎてました
意味合いとしては答えてくれてることで合致してます

メンバ変数を一つ追加することでその他への影響は大きいでしょうか?って意味でした

12 名前:片山博文MZ mailto:sage [2017/10/10(火) 16:49:55.22 ID:RmsAElXwd.net]
>>11
メンバー変数を増やすと、構造体のサイズが増大する。また、変数の追加する場所によっては、メンバーの相対的な位置が変化する可能性がある。
よって、その構造体のバイナリーインターフェースに依存するプログラムは死亡する可能性がある。

13 名前:片山博文MZ mailto:sage [2017/10/10(火) 17:03:33.96 ID:RmsAElXwd.net]
例えば、構造体データをバイナリーとしてファイルに出力していたら、サイズの増えた構造体では正しく読み取れない可能性がある。
構造体のメンバーの相対的位置が変化したら、古い構造体を使っている他のプログラムとは相性が悪くなる。

14 名前:片山博文MZ mailto:sage [2017/10/10(火) 17:13:40.90 ID:RmsAElXwd.net]
Windows APIでは、構造体をバージョン管理して、構造体のサイズで処理を変えたりしている。

15 名前:はちみつ餃子 mailto:sage [2017/10/10(火) 20:42:09.59 ID:ISsQMV5w0.net]
>>14
たまに半端な位置に「予約」とか説明されてるメンバがあったりするよね。
あれはバイナリサイズが変わると困るような理由があるからなんかなぁ。
まあ、たいした理由もなくやっちゃって互換性ゆえに変えられなくなったとかだろうけど。

16 名前:片山博文MZ mailto:sage [2017/10/10(火) 22:10:42.42 ID:RmsAElXwd.net]
>>15
位置やサイズが違うとバグのもと。
昔はよく
#include <pshpack1.h>
...
#include <poppack.h>
を書いたものだ。

17 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 22:48:32.16 ID:muYZ22/tM.net]
膝を撃ち抜く自由も良し悪しだな。

18 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 23:50:05.54 ID:4EEs5NsC0.net]
cURLを限りなくスペックの低い組み込み機器に入れようとしてるところで問題が起きました

・処理能力が低い

cURLをsystem関数でコマンドライン実行しようとすると、
呼び出す側の処理がCPU50%平均的に食っている+cURLもCPU喰うでまともに通信が出来ません

呼び出す側を落とすとcURLの処理速度は改善されるから
確定でCPUの食い合いが原因ってのもわかっている

対策として下記二つが出たのだけど
・呼び出す側をcURLが実行中はsleepにする
・cURLを実行ファイルで取り込むのではなくプログラミングベースで取り込む

上は常に通信をしているためにsleepを挟むことはできず
下のプログラミングベースについてもクロスコンパイルの問題でなぜか上手く行かない
これ以外の方法で対処方法ってありますか?

19 名前:片山博文MZ mailto:sage [2017/10/10(火) 23:55:48.47 ID:RmsAElXwd.net]
>>18
なぜかうまくいかないときのエラーメッセージは何だ?

20 名前:片山博文MZ mailto:sage [2017/10/11(水) 00:02:11.03 ID:qOpcxgfAd.net]
スペックが低いなら、そもそもマルチスレッドが未実装の可能性がある。
ならばsleepは無意味ということになるかも知れない。



21 名前:片山博文MZ mailto:sage [2017/10/11(水) 00:06:14.17 ID:qOpcxgfAd.net]
スペックが低すぎると、ANSI Cなどの規格に準拠してない恐れがある。
マシンとコンパイラーのマニュアルを確認して、準拠状況を確認しろ。

22 名前:はちみつ餃子 mailto:sage [2017/10/11(水) 02:03:02.75 ID:xVJHolx50.net]
>>18
状況がよくわからんなぁ。
system 関数自体は普通は同期的だよね?
スレッドを分けて system 関数を実行した上で、
メインプロセスと cURL がプロセス間通信

23 名前:はちみつ餃子 mailto:sage [2017/10/11(水) 02:03:35.16 ID:xVJHolx50.net]
してるってことかな。
(すまん、ミスって変なところで投稿してしもうた)

24 名前:はちみつ餃子 mailto:sage [2017/10/11(水) 02:18:21.03 ID:xVJHolx50.net]
この件に関しては >>19 の疑問が当然だなぁ。
クロスビルドでこの手の問題がありがちなのは、
ライブラリのサーチパスとかかな。
ライブラリが見つからんとかメッセージ出てないかね?

25 名前:片山博文MZ mailto:sage [2017/10/11(水) 02:27:32.03 ID:qOpcxgfAd.net]
www.ne.jp/asahi/hishidama/home/tech/c/exec.html#h_fork
forkを使えば、プロセスを分けることができるらしい。

26 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 06:22:13.21 ID:Fgfx0EWk0.net]
>>19
undefined 系統のエラーが沢山出る
arm-linux-gnueabi-gccを使ってコンパイルするとそうなる
ただgccだとエラーは起きない。ただi386系になるから実行環境で動かない

クロスコンパイルでcURLの単体がARMにできているから
.aファイルもARM担っていると思っているのだけどもなっていないのだろうか
objdump実行でARMって文字を確認したからARMだと思いたいとこではあるが…

エラー時の実行例
arm-linux-gnueabi-gcc test.c -o test.out -LXXXXXX -lcurl

通るけどi386系で実行環境で実行できない
gcc test.c -o test.out -LXXXXXX -lcurl

>>22
今の状況はPCA-PCBと通信がしたい。着目しているのはPCA
PCAがPCBと通信をする独自規格を元々持っていたのだけど、そのPCAが持っている独自規格を色々な規格をサポートしているcURLに置き換えるって話

今まではPCAの中のメインプロセス(CPUを一番食っているやつ)が通信を行っていただけだったから特に問題は発生しなかったけども
今回はメインプロセスがcURLをコマンドライン実行で呼び出す設計にしようとしている
そのためメインプロセスと別のcURLというプロセスが起動することになると考えている

なので、実装前にメインプロセスが生きている状態で直接コマンドプロンプトでcURLを実行し、動作検証したら通信自体はできるけど動作がとても遅いってとこ露に行きついた
調べてみると、メインプロセス・cURLともにCPUを食いあって速度が遅くなっていることも確認できて
どうやったら上手く実装できるだろうか…と悩んでいるところです

sleepに関しては実装して確認したわけではないけど、kill -stop PIDで実行したら
上手く行ったからsleepも上手く組み込めば対応できrのではないかと思ってる

>>25
forkでこれ以上増えるとさらに遅くなると思ってる…

27 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 07:22:11.99 ID:pdXZ47r80.net]
メンバ変数が1個増えたぐらいで崩壊するのは
対外的にはカプセル化がうまくいっていない例、

内部的にはクラスのふるまいに激甚な影響を与えるような重大なメンバ変数の追加が
後から必要になるというのはマズーな設計の例、

28 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 07:26:23.14 ID:pdXZ47r80.net]
フォークは低速な外部記憶からプログラムコードを新たにロードする手間が無い分高速な可能性が微レ存、
フォーク先とフォーク元でコードが共有されるためメモリ使用効率も多少UP、
あとサーバとクライアントの関係にある処理を(無理矢理)1本のプログラムとして書けるので
開発環境のリソース自体厳しく制限されていた昔はややうれしかったのかも知れん、、

29 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 07:54:56.70 ID:pdXZ47r80.net]
ていうか根本的な疑問として
CPUが低速であるとわかっていながら応答速度の要求があるタスクの一環に
プロセスの起動を含めるのってどうなんじゃ…
(プロセスやスレッドの起動は低廉なOSでは一般にリアルタイム性が全く最強度で担保されない
応答速度の要求が見積もれていなかったんだとすると極めてご愁傷様な話…

30 名前:デフォルトの名無しさん [2017/10/11(水) 20:57:32.43 ID:gwIT2xqO0.net]
%%%%4NEL%%%%
000-SAV-&1.0888214%ML<\47MBL%0.2\MSSSS4.213>
1.8882/%B/%SB/<\2/7BL\%\%B!B%47L%Si72B>%10.2%\
002%\B%===>>>52.B<\rbc/2.8>>\7B<<\7LB>>\72S\<%\42%><\br>001BYON$\%7L2%3.33GHz>>>2.3GHz<\br>
41.B%LB%"<<%11.6$%><<\86.1B>>2LB>"B???S3>>71$-?>6%<\br>
082@<\7L@@<\br>
\LOOP>0<1Entra



31 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 22:47:02.58 ID:pdXZ47r80.net]
つかだいたいやるべきこと:
1. プログラムを全般的に速くする
2. (今から可能ならば)要求元とハンドシェークして必要なだけ待ってもらうしくみにする
3. 間に合わせたい処理の優先度を間に合っている処理より上げる
 (できればワーストケースでの応答時間の上限を担保する

>>20
sleepしてもスレッドコンテキストが切り替わらないOSというのはさすがに都市伝説なんじゃ…

32 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 05:46:12.53 ID:4g8heiq80.net]
ハンドシェイカー?時間の支配者?

33 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 07:21:15.63 ID:K6ixfN2F0.net]
訂正
 ×: プログラムを全般的に速くする
 ●: プログラムのボトルネック箇所を探して速くする
この場合プロセスの起動がボトルネックなのはまちがいなさげなのでそこを速くなるように修正汁、

34 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 09:09:50.72 ID:VRKsQXfP0.net]
汁?

35 名前:デフォルトの名無しさん [2017/10/12(木) 11:20:59.76 ID:PQ1d1y2O0.net]
汁=しろ
2ch地方の方言たい

36 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 12:07:42.25 ID:GDIRJBKR0.net]
汁を知らないのにも今時汁を見られたのにも戸惑う

37 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 13:46:59.50 ID:CaCBhzNq0.net]
cURLでググったらlibcurlってのがある。こっち使えばすべて解決する話じゃないの。
そもそもC++スレなのにlib使わずコマンド経由する理由が謎。

38 名前:デフォルトの名無しさん [2017/10/12(木) 14:05:01.65 ID:OhN0e73F6.net]
ウンコの画像を生成するプログラムの作り方を教えて下さい

39 名前:片山博文MZ mailto:sage [2017/10/12(木) 14:27:08.43 ID:loBt1/dEd.net]
>>38
板違い。CG板へ行け。

40 名前:デフォルトの名無しさん [2017/10/12(木) 14:29:18.75 ID:OhN0e73F6.net]
お願いします!



41 名前:片山博文MZ mailto:sage [2017/10/12(木) 14:44:27.75 ID:loBt1/dEd.net]
MMD、Blender、メタセコイアなど好きなヤツを使ってオブジェクトを三次元モデリングしろ。
ボーンを設定して、思ったとおりに変形できるようにしろ。
レンダリングして、画像として保存しろ。

42 名前:デフォルトの名無しさん [2017/10/12(木) 14:45:58.16 ID:OhN0e73F6.net]
線を引いて多様なウンコ画像を生成するプログラムお願いします!

43 名前:片山博文MZ mailto:sage [2017/10/12(木) 14:49:53.72 ID:loBt1/dEd.net]
基本オブジェクトをいくつか作れ。
基本オブジェクトを変形し、組み合わせれば、求める画像がレンダリングできる。
重力とボーンを考慮すれば自然な形になる。

44 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 14:52:00.26 ID:y2YbOREJ0.net]
AIがウンコ画像を識別できるなら、逆にウンコ画像を生成することもできるのではないか?
これを応用するとエロ画像を識別できるAIにエロ画像を生成させることもできるのでは?

45 名前:片山博文MZ mailto:sage [2017/10/12(木) 16:00:49.56 ID:Q2Fs2fOZd.net]
まずは、MMD、Blender、メタセコイアのどれかを選んでダウンロード&インストールしろ。

46 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 19:02:41.71 ID:eq5Al9lp0.net]
>ボーンを設定して、思ったとおりに変形
要らんだろ・・・・w
アラレちゃんにつんつんでもさせるのかよ

47 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 21:58:15.37 ID:9n97WZ1N0.net]
cURLの起動云々の話に答えてくれた人ありがとう

応答速度についてはめちゃくちゃ遅いってレベルにならなければ問題なく
プロセスを立ち上げるような処理を入れても問題ないとの判断
極端な話10秒で終わっていたのが20秒になりましたぐらいなら問題なく、これが600秒かかりますとかなら問題あった

実際にプロセスを立ち上げてみて処理させてみたけど
CPUの食い合いがなければこの問題は解決できていると考えている

処理についてsleep入れるのは無理そうってレスしたけども
ソースコードを追ってみたらpollなどではなくwhile&usleepでの待機が存在していて
CPU喰ってたからこいつをちゃんと制御すれば問題なさそうってなりました
考えてくれた人ありがとう


別案件なんだけど何か良い実装方法がないか相談させてほしい

48 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:19:04.32 ID:BE/Y4M/40.net]
>while&usleep

時間の掛かる、I/O で、busy wait する奴って、素人だろ

49 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:24:29.13 ID:9n97WZ1N0.net]
1. PCA→PCBへのインストールで新規にcURLの実行形式ファイルを入れることになった
2. インストールが完了して再起動をしたら今後はcURLをsystem関数で実行して通信する

この状況下でダウングレードを試みようと考えた時に

3. PCA→PCBへのダウングレード(インストール)をcURLを用いてする
4. インストールが完了して再起動をしたら今後は独自プロトコルでの通信に戻る

こういう状況になった。
その時に、cURLを削除するタイミングが見付からなくて今困っている。

3を実行したときに判断しようとしたのだけどダウングレードだと判断するに至る材料がない。
ファイルを一個ずつ指定して送信して・・・の繰り返しだからリストにcURLがあるかないかも判断できずってなっている

50 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:25:11.03 ID:9n97WZ1N0.net]
書いてて気づいたけどこれC++の話じゃないって
もうスレチだと気づいたので無視してください

スレ汚しすまん



51 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 05:33:30.13 ID:SZtyoNBi0.net]
>>48
なるほろ
優先度の低いスレッドのビジーループは必ずしも悪ではないと思っていたが
低速なI/O命令を含むビジーループだと応答性能のドブ捨て度が増すのか、

52 名前:デフォルトの名無しさん [2017/10/13(金) 06:42:57.49 ID:/fw1jTt60.net]
usleepしてるんなら優先度関係ないだろ
誰だ変なこと言ってるのは

53 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 07:21:38.02 ID:JHJOvcP00.net]
ネット回線なんか、秒の単位だから、busy wait の範囲を超えてる

busy wait は、せいぜい、1ms 以下とか、
マイコン・リアルタイムOS での話

54 名前:デフォルトの名無しさん [2017/10/13(金) 10:38:57.55 ID:/fw1jTt60.net]
もしかしてusleepがビジーウエイトで実装されているとでも思っているのか

55 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 10:41:47.57 ID:JHJOvcP00.net]
CPU 使用率が、100% になってたんじゃないのか?

56 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 22:27:44.28 ID:SZtyoNBi0.net]
>>52
あるわ;
優先度が高いスレッドにビジーループされるとそいつがsleepしてくれる間隔が
全スレッドの応答時間の下限になってしまう
優先度が低いスレッドのビジーループならsleepを待たずに割り込めるからそこまで甚大にならない

ただしI/O命令があってそいつが数百マイクロ棒かかると
より高いスレッドであってもワーストケースの応答時間が数百マイクロ棒に劣化する

57 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 22:29:57.37 ID:SZtyoNBi0.net]
usleepは普通電気が無駄なのでhaltでもしてハードウェアに割り込みを待たせるが
マルチコア対応OSやったら気分次第でスピンロックでビージループすることもあるかも試練、

58 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 22:46:36.70 ID:SZtyoNBi0.net]
スマン
>usleepは普通電気が無駄なのでhaltでもして
というのは他に実行権待ちのスレッドが無かった場合の話ェ、

59 名前:デフォルトの名無しさん [2017/10/13(金) 23:08:17.12 ID:JHJOvcP00.net]
OS は、たぶん優先度を上下させるから、要注意。
優先度の低いスレッドでも、カーネルモードに入ると、優先度を上げるのじゃ?

優先度の低いスレッドのカーネルモードが、
優先度の高いスレッドのユーザーモードよりも、優先されるかも?

ただ、CPU 使用率が、100% と表示されていても、
本当は、CPUを使っていない場合もあるとか、聞いた事もある

60 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 02:15:22.32 ID:hYPsSpip0.net]
ウニファイドコールシンタックスはまだか!?



61 名前:52 [2017/10/14(土) 07:10:59.60 ID:F19RwFTi0.net]
>>56
おまえさん、やっぱり前提がおかしいな

> 優先度が高いスレッドにビジーループされると
そんな話してねえぞ
usleepしてるんならと言ったろ
なんでビジーループが出てくるんだよ

62 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 07:17:25.54 ID:nAGT83AF0.net]
>>61
知らん国語の苦情なら>>48に家、

63 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 15:18:57.35 ID:6+blsnLXd.net]
ftpサーバを立てられないからプログラミングまで進まない悲しい
530エラーってなんでえええ
IIS使いにくい

64 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 15:51:56.38 ID:NUNtAlCN0.net]
俺もIISでFTPSサーバ立てられなくて困ってるわ
IIS思った以上に使いにくい

IISでオレオレ証明書を作成して
FTPS通信をcURLで確立したいだけなのに
本当にできるのだろうか

65 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 20:46:54.60 ID:jTAoV9hu0.net]
>>63,64
まあそういう話は適切なスレに行ってしてくるといいぞ

66 名前:片山博文MZ mailto:sage [2017/10/15(日) 20:50:15.37 ID:3VVV/TO4d.net]
セキュリティソフトやファイアウォールが通信の邪魔をしている場合があるから、気を付けな。

67 名前:デフォルトの名無しさん mailto:sage釣 [2017/10/15(日) 21:16:20.68 ID:TMBfPksM0.net]
xamppでは出来ないんだっけ

68 名前:デフォルトの名無しさん [2017/10/15(日) 21:45:19.70 ID:bPqYmEmS0.net]
なんか難しい設定あったかな
SFTPできないならありそうだが

69 名前:デフォルトの名無しさん [2017/10/15(日) 21:49:59.50 ID:DZC0OlhV0.net]
>>66
そういう実験はまずVMでやれ、だよな
完全に無防備なら本来どうなっていたという話からクリアして
セキュリティの入った環境で引っかかった場合に切り分けをしながら、と

70 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 23:00:46.02 ID:9R+c2v2L0.net]
usleepの実装ってどんな感じ? どれくらいのμ秒の精度出んの?
ループ中に頻繁に読んでいいものなのか?



71 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 23:29:48.88 ID:lsjR8/6b0.net]
色々あるでしょ。
CPUが時計対応ならそっち見るだろうし、最悪ビジーループ。
不安ならchronoで寝るとかもあるぞ。

72 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 23:39:50.79 ID:9R+c2v2L0.net]
ググると最低4msとか出てくるな。MSみたいに最初からミリ秒単位にしとけば変な誤用されないものを。

73 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 12:13:18.90 ID:iBTaJQF10.net]
ガベージコレクションがないのに、安全なオブジェクト指向プログラミングなんてできるんですか?

74 名前:デフォルトの名無しさん [2017/10/16(月) 12:22:08.74 ID:VYCnmYA70.net]
デ、デストラクタがあるから

75 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 12:25:47.42 ID:CHd6usgT0.net]
ガーベージコレクションも含めて実装するのが真のC++グラマーやでアマチャン

76 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 12:40:47.29 ID:Ou6sbmAQM.net]
GC付きスマポ、誰か作らんかね。

77 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 14:41:14.09 ID:cwpW48EL0.net]
D言語「俺を使えばいいじゃない?」

78 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 20:49:20.76 ID:EBMdtAZpM.net]
cli「もしかして俺の時代?」

79 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 20:54:28.42 ID:D6Ozm2TBM.net]
>>76
誰が使うんだよ?

80 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 22:26:22.71 ID:uaY9uFi30.net]
>>73
RAIIを徹底するのがC++流リソース管理法
いつ走るかわからないGCなんかよりずっとcontrollable



81 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 23:19:12.53 ID:7Byc8Q4r0.net]
GC要求が発生する前にプロセスが完了すりゃいいだけだろ

82 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 00:26:06.58 ID:hVetZd8l0.net]
最近は異常なほど高級言語志向が強いな。

83 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 06:56:31.57 ID:BJIvhub9M.net]
>>81
それGC要らんだろ w

84 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 06:24:43.21 ID:syxw9nR/d.net]
スレッド間の変数の共有って
・pthread時に引数与える
・シングルトン
・グローバル変数
これ以外に何かあるかな?

85 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 08:44:17.01 ID:qJuCX/Qy0.net]
C++を最近学び始めた者なんですが
ファイルへの保存で質問があるんですが良いでしょうか
テキストに保存するのと、バイナリに保存するので
文字列を保存するとバイナリが僅かに小さくなるんですが
vectorを保存すると逆にバイナリのほうがサイズが大きくなるのは
普通のことなんでしょうか?

86 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 08:46:30.49 ID:qJuCX/Qy0.net]
vectorの二次元配列を、forの二重ループで
テキストへは outputfile << data[i][j] << "\t";
バイナリへは outputfile.write((const char*)&data[i][j], sizeof(data[i][j]));
で書き込んでみてるのですが・・・・・・
100×100の配列を書き込むと
テキストが29キロバイト、バイナリが40キロバイトに
配列を大きくすればするほどバイナリが大きくなってしまいます

87 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 09:34:34.48 ID:lDu9kW4oM.net]
>>84
同一アドレス空間である以上、アドレスさえ取れればどんな方法でも共有できると思うよ。

88 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 09:40:31.86 ID:+1GvmKA80.net]
>>86
改行かな?

89 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 09:41:02.33 ID:MOIHjDBn0.net]
>>86
どんなデータかによる。intを保存しようとしててデータが全部一桁ならバイナリの方が大きくなることもあるかもしれない。

まずキャストの使い方が間違ってるので、さっくり消してみよう。
次に読み取り部分を作って正常に読み取れるか見てみよう。

90 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 09:45:31.83 ID:4annDJqp0.net]
>>85
dataの型が解ればもう少し推測できるけど
char data[100][100][MAX_STR_LEN];
だとして
data[0][0] = "data\0qwe"; // "qwe"はゴミ
みたいにnull terminated後の不要なゴミも書き込んでるんじゃない?
バイナリエディタでバイナリファイル覗いてみれば解るかと
サイズから推測するとMAX_STR_LENは4かな



91 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 09:57:25.60 ID:MOIHjDBn0.net]
あ、ofstreamのwriteって引数const char*なのか
ゴメン間違ってるってほどじゃないわ
せいぜいC++っぽくreinterpret_castに変えるくらいか

92 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 11:54:38.42 ID:hNmHHI30M.net]
>>91
いや、私の誤りでした、だろ
何が間違ってるほどじゃないだ
日本語間違えるなよ

>>86
出力したテキストファイルの中身は?何か差分は無いの?
少ない情報出してここで聞くより
見た方がよっぽどわかるだろ

93 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 11:56:58.03 ID:qJuCX/Qy0.net]
レス有難うございます。dataはintのvector二次元配列で
int a=100;
int b=100;
vector< vector<int> > data(a, vector<int>(b));
このdataに、forで
data[i][j] = rand() % 100;
の数字をいれている配列なんです
バイナリ保存したデータを、FavBinEditというものでみてみると
数字と数字のあいだに間隔があいてるので
これがサイズが大きくなってる理由なのかと思うんですが

94 名前:デフォルトの名無しさん [2017/10/18(水) 12:47:08.44 ID:J7UI6pACM.net]
>>93
int型の100*100配列なら約40K byteなんだから、バイナリファイルは正しいと思うよ。
で、テキストも間違っているとは言いきれない。
例えば一桁の数字が多いなら、バイナリファイルより小さくなるよね?

サイズの違いはあって当然だと思うけど。

95 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 13:00:53.38 ID:qJuCX/Qy0.net]
そういうものなのですか
ネット上に、バイナリに保存するとサイズが小さくなる
という話が多いのでそう思い込んでました
自分には関係無いような、複雑なデータを扱うと小さくなるのかな

96 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 13:06:46.43 ID:4annDJqp0.net]
そういうもんですね 自分もintなら納得です

「rand() % 100」なら文字列にしたとき"0"(=0x30)から"99"(=0x3939)と2byteで収まり
"\t"を付けても 常に4byte(=sizeof(int) システム依存)より小さいですから
バイナリだと0を0x00000000, 99を0x63000000(リトルエンディアン)で保存してます

試しに「rand() % 100」を「10000」とか
"文字列にしたとき'\t'も含めて4文字を越える大きさ"にすれば
サイズが逆転するのが観察できるはずです

・扱う数字が小さいからテキストの方が短くて済んでる
・バイナリなら数字が大きく(当然intの最大値を越えないこと)なってもサイズが一定で済む

余談ながら
バイナリで保存するならバイトオーダー(エンディアン)には注意しとかないと
万が一エンディアンの違うシステムで動作する必要があるときに死ねます

97 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 16:31:39.68 ID:8P8HMOssx.net]
質問です。
とあるクラスのヘッダーに定義している文字列変数(CString)の文字列だけを変更し、ビルドしても、変更が反映されないのですがこれは仕様でしょうか?リビルドすると反映されます。
環境はVisualStudio2015 VC++です。

98 名前:97 mailto:sage [2017/10/18(水) 16:50:26.75 ID:8P8HMOssx.net]
自己レス。最小リビルドを無効にしたら解決しました

99 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 20:07:45.40 ID:3bYwz/rX0.net]
>>83
そう
それが肝心

100 名前:デフォルトの名無しさん [2017/10/19(木) 12:49:02.40 ID:LAmWAPnYM.net]
>>95
テキスト形式は、装飾次第で肥大化しやすいってだけだよ。
カンマやタブや改行も装飾の一部。
一桁の数字でも、スペース等で桁合わせしたら、それだけで肥大化するしね。

実際のところは、どういうフォーマットで出力してるか次第だけど。
最小桁で出力していて、rand 出力が正規分布に従うと考えれば、計算上約29k byteになるよ。








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<311KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef