C言語なら俺に聞け 148

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウカー Sacf-slpW)
垢版 |
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/10/18(木) 22:48:32.02ID:+6TFZypL0
>>787
文句があるのなら、異常な流れになる前に、お前が何とかして終わらせておけ。
それも出来ず、やろうともせずに文句だけ言ってるのだから、お前も相当のゴミだぞ。
2018/10/18(木) 22:48:48.36ID:4hMlWk5Ba
>>776
>>775だけを見て同じ方向を向く人たちには言われたくないなw
2018/10/18(木) 22:59:17.90ID:tgytymo80
>>788
匿名掲示板なんて、誰が何書いても咎めようがないし
そういうことで腹を立てても何も得しないと思うけど
もっと大人になろうよ
791デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/18(木) 23:16:58.79ID:THsg9J3q0
ハロワいけ
ハロワ
2018/10/18(木) 23:27:27.31ID:+6TFZypL0
>>790
効果はあるんだよ。だから書いてる。
正確に言えば、効果がある奴には効果がある、だが。

はっきり言えば、君の考え方もズレてるんだよ。
コミュニティは、オンラインであれオフラインであれ、存続する為には新人を受け入れるしかないんだよ。
だから、ゆとり世代以降を全員閉め出す、というのもまた間違いだし、
後10-15年後にはゆとりが社会の主力になるんだから、
それまでに駄目なところを鍛え直すのは上の世代の責任でもあるんだよ。
(君の考えに関係なく、俺達はゆとり世代に未来を託すしかない)

だから俺は俺なりの方法でやってる。それで成果も多少は出てる。
お前は何もしようともしてないのに文句だけ言ってるクズだよ。
ネットだから何をやってもいい、ではないんだよ。
同様に、ネットだから何もやらなくてもいい、でもない。
ネットだから咎めようがない、でもない。
まあ君には通じないとも思うけど。
2018/10/18(木) 23:31:27.22ID:tgytymo80
有益なことなら読んでいるが
長い文章書かれても、大概の奴は読まないだろ
読まれれば効果が有るかもしれないが、
読み飛ばされても文句は言えない事は理解しないと
2018/10/18(木) 23:55:16.65ID:+6TFZypL0
>>793
> 読み飛ばされても文句は言えない事は理解しないと
理解してるぞ。というか、当たり前だろ。お前はアホなのか?

まあお前も理解出来てないのだろうが、なんだかんだでみんな読んでるんだよ。
そのうち分かるようになるよ。
それ以前に、2chの『長文』ごときで無理な奴はプログラマは無理だし。
795デフォルトの名無しさん (ワッチョイ 6a9f-zKqf)
垢版 |
2018/10/18(木) 23:56:44.20ID:Mibooz+L0
たまに上から目線で長文書くバカいるけど誰も読まないんだよな
何故かって冗長なだけで大した事書いてないから
2018/10/19(金) 00:07:48.01ID:kRG86wcga
中身のある、読む価値のあるレスなら長文でもちゃんと読むが、ID:+6TFZypL0のは斜め読みしてめんどくさいだけのやつダナーと思いながら適当に読み飛ばしてる。
2018/10/19(金) 00:10:02.34ID:Av8doxl90
>>795
そういうことにしたいのはお前が馬鹿だから。
実際は、賢い奴ほど読んでる。
正確には、賢くなる過程で大量のドキュメントを読む必要があり、結果、
賢くなった奴はおしなべて読む速度が速く、読むことに関してコストがかからないからだが。
そして、俺の意図は馬鹿にはどうせ伝わらないから、俺もそれでいいんだよ。
長文ガー、なんて奴は最初から相手にしてない。

三行で、一行で、というのもまた自由だが、
現代プログラマにドキュメントの読み込み能力がかなり必要なのも事実だし、
これは今後さらに拍車がかるのも目に見えているから、
2chの長文に手こずる程度ならマジで国語からやり直した方がいいぞ。
2018/10/19(金) 00:20:52.79ID:e4N83vJpa
>>797
国語の能力に関係なく、攻撃的で、感情的で、実のない部分の比率が高い文章は誰にとっても読みにくいと思うぞ。
汚いコードを読みなれてそういうのを読むのが上手くなったからって、自分のアウトプットするコードは論理的かつ明瞭でキレイでありたいと思わない?
2018/10/19(金) 00:31:51.38ID:Av8doxl90
>>798
何が言いたいのか分からん。
その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

俺は俺なりの方法で対処してる。
読むかどうかは当然読み手側が決める。それでいいという前提で書いている。
君がもっと上手く対処出来るというのなら、君がやればいいだけ。
おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
だから、君が見事に、アホ共を捌き、流れが正常化していれば、俺が出張ることもない。
君が俺にこの手の文を投下させたくないのなら、君が実力を見せればいいだけだ。

やってから言えよ。
2018/10/19(金) 01:22:54.20ID:AAQqymuL0
長文連投よりはアホがアホなこと書いてる方がマシだな。
801デフォルトの名無しさん (ワッチョイ 6a9f-zKqf)
垢版 |
2018/10/19(金) 01:25:19.25ID:U7ZV6G1w0
5ちゃんで上から目線で長文書く奴の特徴は驚く程共通してるんだよな
例外無く論理的思考が欠如しているから要点をまとめる事も出来ないんだよ
2018/10/19(金) 02:00:24.64ID:Av8doxl90
>>801
馬鹿こそそういうことにしたがるのだが、
実際、必要な文章量は、認識/知識のギャップに比例するんだよ。

実例を挙げると、>>653,679、ゴミだね、でしかない。
賢い(知識のある)奴にはこれで十分だし、
無理な奴にはグダグダ説明が必要なだけ。

そして俺はお前らがこの件(メタ議論)については無知だと見てグダグダ説明してるだけ。
そもそもお前らが賢ければこんな事にはならないし。


ただ、そういう、「この場合にはこれ」みたいな定型的な屁理屈返しはマジでゆとりに多い。
そういうのも止めた方がいいと思うぞ。誰の為にもならない。
俺も、何度もその返しは見てきた。
それで、誰も俺みたいな返しをしてこなかったから、
お前らゆとりが調子こいて「これは使える」と勘違いしているのだろうけど、
それは単に見捨てられてるだけだぞ。理解出来てないのだろうが。
2018/10/19(金) 07:03:22.13ID:akKjNeBd0
>>799
>>798
>その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

個人的には >>798 は読みやすいんだが、ID:Av8doxl90 は非常に読みにくい
たとえば >>797 は文脈・論理の線が、不適切な日本語を使用しているせいで滅茶苦茶だ

>>797
>実際は、賢い奴ほど読んでる。…@

>正確には、〜コストがかからないからだが。…A

この「正確には」が、読み手を混乱させるミスリード語。
「正確には」と書く以上、すでに述べた@と同格言い直し内容の後続があるかと期待すると、裏切られて、@の理由を示すAが来る。

>そして、〜伝わらないから、俺もそれでいいんだよ。

「そして」が意味不明、何と何が「そして」で続くのかさっぱりわからない。
「そして」を使うのなら、
「俺の文が、馬鹿には読むコストのかかる文章であったとしても」→「馬鹿にはどうせ俺の意図伝わらないから」→「俺はそれでもいい」…B
と、A部分のキーワード「コスト」という単語を使うことによって、AとBが意味の上でつながっていることを明示するべきだ
Bの冒頭を省くから「そして」が宙に浮く

>>799
>おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
上で示したように、君の文章は「おかしな流れ」そのものといっていい
スレが「おかしな流れ」であるとき、それを正すのに「おかしな流れ」の文章が使えるとでも思っているのか?
2018/10/19(金) 07:17:05.03ID:akKjNeBd0
>>801
>上から目線で長文書く奴の特徴
>論理的思考が欠如している

感情にまかせて思いついた単語を羅列するあまり、
前半と後半の意味の整合性がとれていなかったり、前半と後半をつなぐ接続詞が不適切であったり、で、
はっきりいって脈絡がない

書いている本人はテンポ良く文章を量産できる「頭のいい自分」に酔いしれているのだろうが、
実際には量産されているのはポンコツ文
805デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 10:18:49.82ID:gPrGaWTXa
長文をゆっくり書いていられるゆとりのある人はいいなあ
806デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 10:20:47.68ID:SjrnPnkZa
ポンコツかどうかはコード書かせれば分かるだろ。
この世界では他がポンコツでもコードが書ければ正義だ。
2018/10/19(金) 12:53:54.85ID:7j5wTJzZ0
>>802
すまん。俺には知識もないし賢くもないので
もしもあなたさえ良ければ>>653のゴミな点を指摘してもらえると嬉しいな。
2018/10/19(金) 13:19:52.78ID:R+tFUjApM
>>806
いくらコードが書けても設計通りに書けないなら駄目じゃん
2018/10/19(金) 13:27:43.51ID:F6BbYzOIH
>>807
hello worldの存在意義は、
その言語に初めて触れる人に、
言語の規格にきちんと準拠して、
最小限の記述で、
きちんと動作する、
何かのプログラムを見せることだよ。
どんな設計スタイルがいいとか教えることじゃない。
2018/10/19(金) 13:59:06.39ID:P91Z2zs70
hello, worldって
コンパイラをインストールした後
動作確認する為のテスト用だと思ってた
2018/10/19(金) 14:28:27.19ID:bojs5aOI0
ゲーム機ハックした人が最初に実行した自作アプリがhello worldだったとかなんとか。
812デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 14:33:09.80ID:gPrGaWTXa
カーニハンそんなことやってたっけ?
813デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 15:14:02.97ID:SjrnPnkZa
>>808
設計通りに書けない奴はコードが書ける奴とは言わんだろ。
814デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 15:21:55.54ID:SjrnPnkZa
>>809-810
どっちも正しい。

>>811
GBAハックした時は点を一個表示するのが最初だった。
Hello Worldは二番目。
2018/10/19(金) 16:34:20.62ID:2swZl7760
adjtimeって何秒まで調整できるの? 2145秒?
816デフォルトの名無しさん (アウアウウー Sa9f-BMDm)
垢版 |
2018/10/19(金) 17:14:10.33ID:gPrGaWTXa
Linuxというかglibcならmanページに書いてあるよ。
817デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/19(金) 22:42:18.68ID:zxKaiBZl0
make worldでX立ち上がったときは
感動したものだ
2018/10/20(土) 00:30:32.53ID:o/rPvxpn0
make world ってなんかかっこいいよな
2018/10/20(土) 00:33:01.78ID:rwRxHeub0
世界の創造主、いわゆるゴッド
2018/10/20(土) 01:37:49.13ID:/s/GXT/Q0
それで思い出した
プロジェクトでのmakefile、作成が終わった時に
バナー文字で「make end!」って表示するんだけど
ある人のだけは「big cock!」に書き換えてたっけ

ここには関係者いないよね?
821デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/20(土) 15:49:24.33ID:Nttc2RvPa
C言語だから、次世代言語(w)よりもコード出るかと思ったら、出ないのな。
2018/10/20(土) 21:33:22.48ID:y1kFtLUq0
どうでもいいけど
「w」という名前の言語があるのかと思った。割と本気で調べてしまったw
2018/10/21(日) 04:55:52.71ID:sz/a4USN0
>>822
あるね。
http://memo.sappari.org/a2z-languages
http://www.vttoth.com/CMS/index.php/projects/49
2018/10/21(日) 20:05:57.37ID:YP/adz7t0
>>773
近称で自己紹介乙
2018/10/21(日) 21:20:19.52ID:S2kctYlU0
>>824
ごめん、俺は精神科じゃないし w
2018/10/21(日) 21:28:27.90ID:o3Tx01ZR0
病気の話を持ち出すのは、そういう体験が豊富にあるからだろう
2018/10/21(日) 22:08:00.66ID:YP/adz7t0
>>825
人物と診療科を等値比較とかおまえstd::logic_errorだな
828デフォルトの名無しさん (ワッチョイ 3bb3-xBTp)
垢版 |
2018/10/21(日) 22:17:56.29ID:+iExR7UM0
Cでfloat型が表す最小の正の数値を求めるプログラム書いてて、
とりあえず1.175494e-38に近づけるように書いてみてるんだが
printfで値表示させながらやってみると1.175494e-38以下も表示されるのなんで?
環境はgcc5.5.0_1

とりあえず最小判定は初期値1.2e-38を0.000001e-38ずつ減らしていって、
1.175494e-38を抜けるとバカな数字が出てくると仮定してif(a / (b - c) != 1)で判定してる

int main(){
float a = 1.2e-38, b;
float c = 0.000001e-38;

while(1){
b = a;
a -= c;
printf("a=%.6e b=%.6e\n", a, b);
if(a < 0 || b < 0) break;
if((a / (b - c) != 1.0)) break;
}

printf("a=%.8e b=%.8e\n", a, b);
if(b < 1.175494e-38) printf("b is not min value\n");
}
2018/10/21(日) 22:24:44.10ID:S2kctYlU0
>>827
精神科医のタイポの指摘しかできなくて悔しいね w
2018/10/21(日) 22:40:20.13ID:P+edJh4ea
定数のマクロあったりしないのか
2018/10/21(日) 23:01:49.92ID:YP/adz7t0
>>829
あ、おまえ間違えたの? アホとヴァカしかやらない間違いだなw
2018/10/22(月) 00:28:49.01ID:4J0CKskh0
基本情報c言語で受かってた
すごいっしょ
2018/10/22(月) 01:24:24.92ID:qPiOMOlUM
>>828
なんかいろいろ勘違いしてないか
>1.175494e-38を抜けるとバカな数字が出てくると仮定して
この仮定がはずれてるから無限ループしてんじゃん
834デフォルトの名無しさん (ワッチョイ 3bb3-FQxm)
垢版 |
2018/10/22(月) 01:30:41.57ID:eGJ65JSF0
>>833
int型だとオーバーフローすると馬鹿な数字がでてくるからそう仮定したんだが違うのか
率直に聞くんだけど、この場合どうすればいいの?
2018/10/22(月) 01:41:56.82ID:ao50gEDc0
>>834
バカな数字とかいい加減な理解をしないで、ちゃんとした仕様を調べてみなよ。例えばwikipedia辺りで算術オーバーフローの項目見て全部読んで、分からない語とか関連する語もちゃんと調べるとか。
2018/10/22(月) 02:29:56.23ID:gc2RKbtu0
>>833
>>835
無限ループはしないけどどんどん値は減っていく。
理由わかるの?828じゃないけど俺も知りたい。
2018/10/22(月) 02:49:07.02ID:qPiOMOlUM
>>834
int?
int使ってる?
2018/10/22(月) 04:47:45.21ID:o0mVKFY/0
>>831
>>829
839sage (ワッチョイ 3bb3-xBTp)
垢版 |
2018/10/22(月) 04:59:16.08ID:eGJ65JSF0
>>837
int型で似たようなこと(最大の正の数値を求める)やろうとしたら、バカみたいな数字が出たってだけだよ
2018/10/22(月) 06:47:45.13ID:MQnoZdqg0
>>838
アホw ヴァカwww
2018/10/22(月) 07:09:00.78ID:PnrNZBigM
>>840
>>773
2018/10/22(月) 07:36:45.42ID:3zPWDIkK0
>>828
非正規化数(denormal)でぐぐれ
2018/10/22(月) 09:03:08.22ID:MQnoZdqg0
>>841
アホとヴァカを認めやがったw
2018/10/22(月) 10:25:10.75ID:OFRfv3K50
KYB
2018/10/22(月) 12:24:07.96ID:PnrNZBigM
>>843
意味のわからん解釈で勝ち誇るとか低能の定番乙 w
846デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/22(月) 12:59:00.86ID:8WYgXfgna
そろそろコードで語れや
2018/10/22(月) 13:28:16.05ID:MQnoZdqg0
>>845
意味わからんのか
よほど高力価のトランキライザーを打たれているようだな
もう末期でオピオイドとかか?
お大事に
2018/10/22(月) 15:05:43.37ID:K/0BTgUUH
>>828ですが、参考書やらをみてアンダーフロー・正規化についてしっかり理解したところ、解決しました。

要は、float型のビット表現の仮数部が 0.(仮数部) ではなく 1.(仮数部) で表現されてるから、
その意味では
0|00000001|00000000000000000000000
が最小の正数になるけど、仮数部を 0.(仮数部) と表現しても計算できないことはないから、
0|00000000|10000000000000000000000
もちゃんと表示される、ということだけど、
これ以降ずっと計算していくといずれ
0|00000000|00000000000000000000000
となるから、150回目くらいでアンダーフローが起こる、ということらしい。

>>835>>842ありがとうございました。
2018/10/22(月) 19:09:18.14ID:LClj1fo2M
>>847
>>845
アホとヴァカとしか言えなくて悔しいね w
2018/10/22(月) 21:38:29.05ID:MQnoZdqg0
>>849
そうか、847にアホとヴァカって書いてあるのか
実際には、そう言ってるのはおまえだけなんだが
確かに悔しそうに勝ち誇っているシュールな姿だねw
2018/10/22(月) 23:25:34.63ID:o0mVKFY/0
>>850
> そうか、847にアホとヴァカって書いてあるのか
> 実際には、そう言ってるのはおまえだけなんだが

ヴァカで検索
>>831 > あ、おまえ間違えたの? アホとヴァカしかやらない間違いだなw
>>840 > アホw ヴァカwww
>>843 > アホとヴァカを認めやがったw
849-850 は指摘なので省略

> 自分にお前だけとかかなりシュールな姿だねw
2018/10/23(火) 02:12:44.79ID:hcGdXqLuM
飽きないねぇ・・・
2018/10/23(火) 03:28:29.69ID:MMiE9qLz0
>>848
色々違う
2018/10/23(火) 12:00:30.24ID:cKF5Z2eR0
C言語でLinuxのdmesgやffmpegのログのような着色された分かり易いログ出力ができるライブラリってありますか?
[YYYY-MM-DD hh:mm:ss.ss] INFO: creating some file...
のような形式がいいんですけど、Cだと自作するしかないですかね?
2018/10/23(火) 12:27:40.24ID:SzZ0Y41Da
>>854
標準ライブラリにはない
git漁ればあるはず
でもそのぐらいなら自分でチョロっと書けば終わる
2018/10/23(火) 12:33:21.57ID:9ghnGYJ4a
色だけだったら制御コード挟むだけでかなり直接的な操作だから、ライブラリ要らんと思うよ
2018/10/23(火) 21:42:50.09ID:/OGOSsnj0
>>851
ヴァカと書いてあるのを血眼で探したのか
ご苦労だったな

で、誰か「自分にお前だけ(ry」とかテレパシーで話しかけてきたのか
なるほど精神科の医者じゃなく患者だな
精神分裂病の陽性症状で幻聴がひどいようだな
2018/10/23(火) 21:55:22.05ID:AzbdbLNL0
血眼?
検索機能も知らんのか w
2018/10/23(火) 22:50:27.85ID:PGQOpxAMa
>>854
サンプル書いてやったぞ

#include <stdio.h>
#include <time.h>
#define D(fmt, ...) \
do { \
struct timespec _ts_; \
struct tm _tm_; \
char _tt_[128] = {0}; \
clock_gettime(CLOCK_REALTIME, &_ts_); \
localtime_r(&_ts_.tv_sec, &_tm_); \
strftime(_tt_, 128, "%H:%M:%S", &_tm_); \
fprintf(stdout, "\033[33m%s.%lu %s:%d %s " fmt "\033[0m\n", \
_tt_, _ts_.tv_nsec, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \
} while (0);
2018/10/24(水) 00:50:22.48ID:pNd6Tk0Ba
do/whileでくくる意味あんの?
2018/10/24(水) 00:54:26.48ID:PjZwCPb8M
末尾のセミコロンがなければ意味あるけど、
セミコロンのせいで無意味になってるね。
2018/10/24(水) 01:18:13.51ID:fzPXyYYOM
カラーコードをハードコーディングかぁ
やりますねぇ・・・
2018/10/24(水) 01:42:48.00ID:+vpF9pgu0
>>859
ありがとうございます!
一点,おこがましい指摘なのですがfprintfの出力先はstderrのほうがいいのではないかと思います。
ログ出力はコマンドの出力とは別個にするべきなので。
2018/10/24(水) 01:48:03.42ID:+vpF9pgu0
>>862
例えば改行を\x0aで固定するのは良くない方法であり、\nにすべきですが(これだとWindows向けにビルドしてやれば\0x0d\0x0aが出力されるようになる)
着色に関するエスエープシーケンスを固定するのは別に大丈夫だと思います。
ECMA-48/8.3.117などで標準化されてますし。
2018/10/24(水) 02:18:53.70ID:fzPXyYYOM
>>864
ん、いや、マクロくらい使おうよって話
2018/10/24(水) 03:09:04.52ID:+vpF9pgu0
>>865
ああ
「\e[33m」という記法それ自体ではなく
「33」という文字列を,例えばYELLOWマクロにする,というような意味だったんですね。
まあ確かにそうかも知れないです。
2018/10/24(水) 04:01:46.93ID:fzPXyYYOM
>>866
いやいや・・・
それ丸ごとマクロにした方が楽でしょ・・・
https://stackoverflow.com/questions/3219393/stdlib-and-colored-output-in-c
2018/10/24(水) 05:49:24.17ID:X/sBrfkw0
>>867
説明のための例だからそういう定義が分かりやすいとして、

>>866
こういうのを定義するときは、手段じゃなくて目的で定義する方がいいんじゃないかな。
ソース位置の強調をするために STYLE_LINE、タイムスタンプを強調するために STYLE_TIME、プロセスIDを強調するために STYLE_PID、みたいな。
それらを定義するときに YELLOW とか RED とか使う感じ。

#define STYLE_LINE(FMT) (ANSI_COLOR_YELLOW FMT ANSI_COLOR_RESET)

みたいにして、
fprintf(stdout, STYLE_TIME("%s.%lu") " " STYLE_LINE("%s:%d") " " STYLE_MSG(fmt) "¥n",

とか。
2018/10/24(水) 07:45:53.57ID:hBENxp+1a
>>861
;はミスだわ

>>863
サンプルなのでお好きに

>>868
好みかもしれんが、一行の中で色変えるとか見づらくないか?
そのフォーマットではファイル出力したくなくなるし

俺が色使うなら #define D(type, fmt, ...) でタイプ指定して
fprintf(stdout, COLOR(type) ... COLOR_END "\n",
とかで色変えるぐらいかな
2018/10/24(水) 09:48:15.70ID:X/sBrfkw0
>>869
例だから派手にしたけど、言いたいのは目的にちなんだ定義名にした方がいいってこと。
ログレベル毎に色を変えるなら、STYLE_ERROR、STYLE_WARN、STYLE_INFO とかさ。
2018/10/24(水) 09:56:16.01ID:WhwEQaTDa
まあ抽象は正義だからな
2018/10/24(水) 19:57:27.64ID:a4OXlgOjM
正論と同じであまり振りかざされても実務では面倒なだけ
>>868とか正直ウザって思うわ
873デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/24(水) 20:20:46.99ID:k2aW8IHEa
cursesライブラリは使えないなかな?
2018/10/24(水) 20:56:00.65ID:+vpF9pgu0
ていうかログのフォーマットってCでは標準化されていないのね、SUS含め。
Javaのlog4jやPythonのloggerみたいなものがあれば 一番嬉しいんだけどね
2018/10/24(水) 21:31:34.66ID:0y0LlX3od
C初心者です、よろしくお願いします
ubuntuのvimでしこしこ書いてgccでコンパイルしています
CでIDEを使ってみたいのですがオススメありましたら教えてください
仕事ではJavaでEclipseを使ってるのですがCで使ってみたらいまいちピンと来ませんでした
やはり皆さんVisualStadioとかVSCodeあたりでしょうか?
2018/10/24(水) 23:14:58.20ID:GbRp+dd6M
そうですね
ぜひ使ってみて下さい
877デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
垢版 |
2018/10/25(木) 09:43:50.32ID:hw/Q19JUa
>>874
ないけどUNIXで昔からsyslog使われてた。というかそれがあったせいで他のログ出力ライブラリが広まらなかったのかも知れない。
2018/10/25(木) 10:55:57.05ID:OLog262Fa
ログ出力も奥が深いよな。
大量かつ高速が条件だとなかなか悩む
2018/10/25(木) 12:17:11.73ID:3CeE+Pyi0
最近はログをDBに格納している
2018/10/25(木) 15:07:02.91ID:UNvjysmaH
DBのログは?
2018/10/25(木) 15:27:49.50ID:R/0gSUq30
syslogは日付がISOに従ってないのがちょっと嫌だな。
[YYYY-MM-DDThh-mm-ss,ssZ] LOGLEVEL: some messages.
こんな感じがいい
882デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
垢版 |
2018/10/25(木) 15:40:47.48ID:hw/Q19JUa
rsyslogdだと設定できなかったっけ?
2018/10/25(木) 17:56:49.79ID:zmVgc+jlM
>>878
大量⇒高速に処理が必要だから、その条件は大体セットだろ
それにプログラムが異常終了してもログが欠落しないとかの条件がつくと難易度が更に上がる
2018/10/25(木) 18:37:09.60ID:R/0gSUq30
うーん。素人考えなんだけどfprintf()関数を呼び出したり,その中で__FILE__マクロ変数を展開したりするのって
そんなにコスト掛かる動作じゃないよね。
いくら大量の処理とは言え,ログを出力しただけで影響がでるような厳しい環境ってそうなくない?
そしてそもそもそんな環境でログ処理ではないメインの処理って動くの?
2018/10/25(木) 18:46:33.19ID:s6Ph9fEn0
>>884
マルチプロセスやマルチスレッドだったりすれば排他も必要だし、fprintf 使っただけだとプロセスの突然死なんかではバッファがフラッシュされず失われ、一番欲しい落ちる寸前の情報が欠けかねない。
小まめにフラッシュしたらそれはそれで性能の問題が出る。
奥が深いと思うよ。
2018/10/25(木) 23:51:29.92ID:GsCjxORea
>>870
ああ、過剰な例だったか

>>871
あの例は抽象化ではないけどな
まあ例だから深くは言うまい
2018/10/26(金) 00:21:48.90ID:7237jhqNa
>>884
どの程度の性能を求めてるか次第だと思うよ
時刻取得でも clock_gettime と gettimeofday でうるさく言う人もいるしね

トレースログみたいに高速かつ大容量を考えるなら
ログがN件入るバッファを複数持っておいて
情報は基本バイナリで登録、ローテート時にファイル書き出し、
別途パーサーを作る、とかかな

まあそこまでする必要のあるソフトなんて稀だろうけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況