UNIXプログラミング質問すれ Part10

■ このスレッドは過去ログ倉庫に格納されています
2011/04/18(月) 17:06:36.77
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 

前スレ 
Part9 http://hibari.2ch.net/test/read.cgi/tech/1205795434/
Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/ ;
Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/ ;
Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/ ;
Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/ ;
Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/ ;
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/ ;
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/ ;
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html ;


Part3のミラー 
http://makimo.to/2ch/pc5_tech/1085/1085930894.html ;
Part2のミラー 
http://makimo.to/2ch/pc5_tech/1055/1055110889.html ;
2012/11/18(日) 00:31:11.12
>>546
勘違いしていました

よく分かりました・・・・謝
2012/11/18(日) 04:39:58.63
>>544
ONした後は光速で伝わるから
馬脚よりは高速なんですね
わかります
549デフォルトの名無しさん
垢版 |
2012/11/18(日) 14:04:51.05
Intel Xeon Phiを扱えるコンパイラーを教えてちょ
2012/11/18(日) 15:07:05.74
gcc
2012/11/18(日) 21:02:49.61
素直にicc使えば?
2012/11/19(月) 02:02:44.98
>>541
共有メモリにフラグ用意して、RTプライオリティにしたプロセス間で
ポーリングかけるのが時間安定性的に一番確実な気がしないでもない

CPU食いまくるが
553デフォルトの名無しさん
垢版 |
2012/12/07(金) 18:16:20.75
初心者なので間違っているかもしれませんが、
おそらくデータリンク層に関する質問です。

例えばプログラムでIPプロトコルを使って、
LAN内のサーバにデータを送るということをしようとする場合、
プログラムではIPヘッダに対応するstruct sockaddr構造体のメンバに
情報を与えるということしか行っていないと思うのですが、
Ethernetヘッダはプログラムを書いてコンパイラを通すと、
送信処理を行う時は NICを通してEEPROMからMACアドレスを読み込んで
それを送信バッファに 書き込むという処理がアセンブラコードに
書かれていると考えていいのでしょうか?
554デフォルトの名無しさん
垢版 |
2012/12/07(金) 18:23:54.52
なんでやねん。
2012/12/07(金) 18:30:08.87
初心者とは謙虚な
2012/12/07(金) 18:40:22.62
>>553
そう考えては駄目です。そうなっていませんから。
2012/12/07(金) 18:47:57.21
>>558
UNIXプログラミングスレでの質問なのでUNIXでどうなっているかというと、
L3(IPパケット)ヘッダやL2(Ethernetパケット)ヘッダを作るのはOSカーネル内の
プロトコルスタックと呼ばれているモジュールが行う。

組み込みなどでキミが想像しているようなライブラリでの実装もあるかもしれない。
2012/12/07(金) 19:04:09.57
お、おれに言われても…
2012/12/07(金) 20:26:33.52
>>558
もう一回言うからよく聴け。
それはカーネルの仕事でユーザプログラムの仕事じゃない。
2012/12/07(金) 20:53:34.27
>>553
やってて楽しいか?
2012/12/07(金) 21:31:20.37
>>553
ネットワークすれで聞けば
562デフォルトの名無しさん
垢版 |
2012/12/08(土) 07:25:35.96
>>557
さすがエスパー様
仰る通り組み込みを想定しておりまして、
ハードウェアから勉強するしかねえなーと思いながらちょこちょこ
勉強しだしているのですが、なにぶんノーマルの処理を知らないのです。
プロトコルスタック勉強してみます。ありがとうございます。

>>560
ひとつひとつ論理的な積み重ねで物ができるとおもしろいです。

>>561
折を見て聞いてみます。とりあえずプロトコルスタックなるものを
勉強してみます。誘導ありがとうございます。
2012/12/08(土) 09:53:49.69
プロトコルスタックを自前で書いてたら一生かかっても終わらねえよ。
2013/06/20(木) 10:09:48.69
echo aaa > test.txt
のようなテキストファイルに文章を追記するコマンドの使い方がありますが
半角スペース入り半角記号入り改行入り半角英数字文字列をテキストファイルに追記もしくは新たにテキストファイルを作成する
コマンドはありますか?バッチファイルを作成したいのでviでテキストエディタを起動して作成等の方法は使えません。
2013/06/20(木) 11:12:49.75
echo " aaa
aaa " > test.txt
とかでどう
2013/06/20(木) 11:29:14.09
>>564
「bash ヒアドキュメント」でググれ
2013/06/22(土) 22:29:05.19
Subversionをインストールしたマシンにコミットしたファイルの
ディレクトリってデフォルトだとどこにあるかわかりますか?
2013/06/22(土) 23:24:21.76
>>567
デフォルトというのは無いと思うよ。
2013/06/23(日) 02:19:26.06
>>564
echo -e "aaa\naaa"
2013/06/23(日) 05:04:30.30
ヒアドキュメントってこういうやつね。

cat <<_END_ >test.txt
aaa
a a
_END_
2013/07/09(火) NY:AN:NY.AN
Linux で、Objective-C 使えますか?
2013/07/09(火) NY:AN:NY.AN
http://www.gnustep.org/
2013/10/23(水) 07:55:21.29
ハードリンクと違って、
シンボリックリンクはそれ自体がリンク情報を格納したファイルだとの事ですが
リンク情報ファイルとして直接見る(テキスト/バイナリエディタ)にはどのようにすればよいでしょうか?
2013/10/23(水) 08:11:05.93
>>573
どのファイルシステムの話をしてんだよ。
2013/10/23(水) 09:04:19.27
環境は MacOS10.7 ファイルシステムは HFS+ ですが
ファイルシステムによって開き方が違うんですか?
2013/10/23(水) 09:19:54.34
わかればよろしい
2013/10/23(水) 10:02:16.47
>>575
http://www.wdic.org/w/TECH/%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AA%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF

extではファイルにならないこともある。これを利用して高速なロックファイルとする方法あったね。HFS+はわかんないや。
2013/11/02(土) 07:42:13.92
>>575
マカーはこちらへ
http://toro.2ch.net/test/read.cgi/tech/1113058054/
579デフォルトの名無しさん
垢版 |
2014/03/04(火) 10:40:27.75
あらら随分と寂れちゃって
やっぱUNIX系でプログラムミングしようなんてヴァカは少ないんだろうな
2014/03/04(火) 10:44:38.16
馬鹿には無理
2014/03/04(火) 12:47:00.64
「やっぱUNIX系でプログラムミングしようなんてヴァカ」という奴はいない
2014/03/04(火) 13:49:03.30
>>579
んじゃ何でプログラミングするんだよ?
583デフォルトの名無しさん
垢版 |
2014/03/05(水) 00:05:19.95
>>579
馬鹿には無理
584デフォルトの名無しさん
垢版 |
2014/03/05(水) 03:25:53.72
わかればよろしい
585デフォルトの名無しさん
垢版 |
2014/03/07(金) 22:08:54.91
ユニックスでプログラミングとか真性のオタクだろw
586デフォルトの名無しさん
垢版 |
2014/03/08(土) 13:19:20.76
>>585
馬鹿には無理
2014/03/08(土) 14:07:00.70
まあプログラミング作業そのものはwin 上でおこなうけどな
2014/03/10(月) 03:07:52.96
プログラミングする奴はゴロゴロいるけどプログラムミングはそうそういないな
2014/03/10(月) 11:58:20.45
プログラムミングだからか、そりゃMinGWでやってりゃいらつくかもしれん
590デフォルトの名無しさん
垢版 |
2014/03/12(水) 19:32:04.52ID:cq0Wuml2
Program MinG
591デフォルトの名無しさん
垢版 |
2014/04/04(金) 11:37:49.40ID:+1zjSCgd
私は主にLinux上で、C/C++のプログラミングをするんですが、
Linux の システムコールや標準ライブラリ関数が、
スレッドセーフかどうかが公式マニュアル等には、
まず記述されていないことが多いです。

スレッドセーフでない関数をスレッドから使うと
おかしな動きになるんですが、
スレッドセーフかどうかがハッキリ記述されている例の方が
少ないです。

みなさんはどうしてますか?
2014/04/04(金) 11:56:16.78ID:5os8VUT8
man pthreads
2014/04/07(月) 00:41:04.44ID:JdSV9wAR
システムコールはされてるだろ。glibcも。
594デフォルトの名無しさん
垢版 |
2014/04/08(火) 18:36:01.77ID:nqRQMd5J
質問です。
ネットワークAPIの略号はこんな感じでいいのでしょうか?

a : ascii
h : host
hs : host short
hl : host long
n : network or numeric
ns : network short
nl : network long
p : presentation (.で区切られたアドレスを文字列で表現)

aとpは同じ意味なのでしょうか?
nはnetworkと説明されていたり、numericと説明されているのですが、
どちらでもいいのでしょうか?

よろしくお願いいたいします。
2014/04/08(火) 19:06:15.00ID:XsPn59mL
???
2014/04/08(火) 19:30:25.89ID:pfMGzHK8
>>594

まじれすすると
しいて言えばaがaddress、nがnetworkじゃ?
inet_addrとinet_networkがあるしな。
aがasciiじゃ使える文字の種類が多すぎだろw
aとpは、とりあえず関数の対応範囲が違う。

しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
597デフォルトの名無しさん
垢版 |
2014/04/08(火) 19:37:10.16ID:kcd9laA9
>>596
一部の英語ページでasciiだと書かれている所があったのでasciiだと思いました。

>aとpは、とりあえず関数の対応範囲が違う。

kwsk

>しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw

と言ってもUNIX発祥ですよね?
2014/04/08(火) 19:55:39.16ID:pfMGzHK8
>>597
>と言ってもUNIX発祥ですよね?

まあBSDソケットのことを指すなら...
しかしじゃあC言語の話もUNIXなのか? ウェブの質問をする場合はNeXTか?
2014/04/09(水) 01:22:41.83ID:rnlf/mPK
>>579
会社を探しても見つからないのでPHPを覚えることにした
2014/04/09(水) 09:01:14.53ID:e48Xi3NQ
>>598
横だけど
>しかしじゃあC言語の話もUNIXなのか? ウェブの質問をする場合はNeXTか?
前半はカニチャーハン読むとその感じがわかるが、後半は???
2014/04/09(水) 09:32:21.34ID:5VEJdG+v
わからないなら黙ってろよ
2014/04/09(水) 09:57:21.51ID:e48Xi3NQ
適当なこと書くなよ
2014/04/09(水) 10:55:51.16ID:Lfy0Xgry
webはNeXTSTEP上で開発されたからでしょ。
2014/04/09(水) 10:59:29.84ID:3Xcjw1HB
ソースは?
2014/04/09(水) 11:10:06.95ID:Lfy0Xgry
>>604
ググればいくらでも。
http://www.w3.org/People/Berners-Lee/WorldWideWeb.html
2014/04/09(水) 11:28:38.99ID:3Xcjw1HB
ブラウザーか
2014/04/09(水) 11:30:48.25ID:3Xcjw1HB
サーバもそうだね、ごめん
2014/04/09(水) 11:53:40.04ID:LRWrSFoo
>>600
カニチャーハンに吹いた。
>>598
世に転がってるコードのほとんどがBSDソケット関連だからしょうがあるまいよ
2014/04/09(水) 12:45:03.71ID:Lf5xDRrs
cern httpdにNextSTEPのコードが残ってるのかな?調べる元気はないが
ttp://www.w3.org/Daemon/
2014/04/09(水) 14:05:10.90ID:Ih8FRvRW
aはBSD socket こっちがオリジナル
pはPOSIX
POSIXがpに変えた理由は分からん。atoi何かと共通でいいのにな。

>>609
NeXTSTEPで開発したと言っても、BSDシステムとして使ってるだけ。
ところどころNeXT亜種としてのifdefがある程度。
waitかwait3かwaitpidかとか。
2014/04/09(水) 14:32:24.39ID:ZHBwUHYP
>>610
なるほど
2014/04/09(水) 14:34:12.02ID:yn/sF65z
>>610
サーバ側はそうかもしれないけど、
クライアント側もNextStepフレームワークの機能をほぼ使ってなかったの?
613デフォルトの名無しさん
垢版 |
2014/04/09(水) 15:46:27.04ID:i8e/a0RW
>>610
POSIXで追加した関数がpになった?
POSIXでもaは残っているよね?
2014/04/10(木) 13:11:17.94ID:XJwbthao
>>612
>>609からの流れを無視してそんな答えの決まってる質問するなよ。
2014/04/10(木) 13:49:44.14ID:TvL1VyED
>>609>>600を理解せずに、頓珍漢な事を言い出しただけ
2014/04/10(木) 14:09:32.07ID:UW8P9M5z
>>606>>607>>609
普通の流れじゃないか?
2014/04/10(木) 14:50:52.67ID:J/8goZVV
>ウェブの質問をする場合はNeXTか?
ウェブといえばブラウザーの話な、これまめな
2014/04/10(木) 14:56:00.17ID:XJwbthao
つまらないボケのつもりなのか何なのか。
2014/04/10(木) 14:57:31.49ID:FMX8fFXB
つかタダでさえ人減ってるのにいがみ合ってどうすんだよ
2014/04/10(木) 14:58:53.83ID:HaZcfplR
>>612
使ってたよ。今のiOSのCocoa Touchにあたるものが既にあったからね。

当時大学でNeXTが使えたので一応リアルタイムで遊んだ。
しかし「所詮ハイパーテキストだろ」、と思った俺に先見の明はまるでなかった。
Gopherでエロ画像を配布・収集することに精を出していたのはいい思い出

その後NeXTからWebObjectが発表されて、ただの静的なハイパーテキストから
動的なWebアプリの概念が発展していった、と理解している。
2014/04/10(木) 15:47:15.93ID:J/8goZVV
Mosaicからしか知らん
tp://ftp.ncsa.uiuc.edu/Mosaic/
2014/04/10(木) 16:45:24.84ID:A86XAulB
そういやarchieを最後に使ったのがいつだったか思い出せないや
2014/04/10(木) 20:58:27.68ID:CGLbGtu7
どこまでタイムスリップしたらwwwの創始者になれるかな。
2014/04/10(木) 21:29:38.26ID:12EYUgzM
www
625デフォルトの名無しさん
垢版 |
2014/04/11(金) 09:27:55.52ID:I+yNGwZi
>>623
マジレスすると
そういう夢見るのも良いけど
20年後の世界標準(ω)になるものを
今から創造した方が楽しいぞ
2014/04/11(金) 10:02:34.34ID:F9N8K0IN
>>625
マジレスすると別に興味ない。
自分の開発環境が快適と思えればそれでいい。
627デフォルトの名無しさん
垢版 |
2014/04/11(金) 11:53:48.19ID:nfBS813s
今どき、サーバプログラムを作るときはどうするのがいいのかな
規模が小さいからxinetdで済ませたいんだけどそれでもいいんだろうか
628デフォルトの名無しさん
垢版 |
2014/04/11(金) 13:01:29.58ID:31jcxzSz
>>627
デーモンにするか、xinetd にするかは、
クライアント側からのアクセス頻度で決めるべき問題でしょ。

アクセス頻度が十分に多ければデーモンにすべきだし、
少なければ xinetd, inetd の方がいい。
2014/04/11(金) 17:18:05.86ID:aluZjTib
一般的に使われるものならinetdがないMac OS Xの事も考えてやってね。
代わりにlaunchdというのがある。
630デフォルトの名無しさん
垢版 |
2014/04/12(土) 11:46:22.55ID:0X1ZzDgt
ありがとう
inetd系でいくわ
2014/04/12(土) 15:25:30.45ID:hH6WyNhq
http://2;ch.sc/
2014/04/12(土) 15:56:33.94ID:EgrmLH2O
ひろゆきの宣伝うぜー。
10年前にあめぞうを荒らして2chに誘導したのと全く同じことをまたやろうとしてやがる。

全く変わらずクズだな、ひろゆき。
2014/04/12(土) 16:01:24.03ID:UapBJj1i
なるほどね

また鯖おちたね
634デフォルトの名無しさん
垢版 |
2014/04/30(水) 14:41:44.67ID:XBNt2TTL
----foo.sh----
#!/bin/sh
if [ bool処理 ];then
 exit 0
else
 exit 1
fi

----foo.c----
return = system("foo.sh");
if(WEXITSTATUS(return)){
 シェルスクリプトでexit 0の時の処理
}else{
 シェルスクリプトでexit 1の時の処理
}

このようにシェルスクリプトの終了ステータスで条件分岐したいのですが
いつもtrueになってしまいます。
どのようにすればいいでしょうか?
よろしくお願いします。
% uname
FreeBSD
2014/04/30(水) 15:45:33.66ID:BnmcVkVe
returnは予約語
WEXITSTATUSが非ゼロの場合のコメントが「exit 0の時」

実際に問題となったコードで出し直し
636デフォルトの名無しさん
垢版 |
2014/04/30(水) 15:55:27.10ID:23BUNUOn
http://d.hatena.ne.jp/XuHuang/touch/20070808/1186593679
2014/04/30(水) 16:47:23.85ID:+76j8OJU
2014/04/30(水) 18:11:15.11ID:ZY5HChQC
馬鹿には無理
639デフォルトの名無しさん
垢版 |
2014/05/06(火) 12:51:39.88ID:OFsDJUcu
Cで、標準入力と標準出力をひとつにして標準入出力としたい。
2014/05/06(火) 13:49:59.83ID:5cOP3XrV
すれば
2014/05/06(火) 13:52:48.20ID:OFsDJUcu
>>640
そうしたいのはやまやまだが
やり方がわからぬ
2014/05/06(火) 17:09:21.31ID:R4LFdeTL
unix ではプロセス間に生成されるパイプは基本リードまたはライトの一方向として生成されるからね‥‥
ふつうのディスクリプタのように双方向にすればいいのだが
2014/05/06(火) 18:55:48.96ID:G4//2ydq
>>641
こういうことをしたいの?

#include <stdio.h>
main()
{
    int   x;
    freopen("/dev/tty", "w+", stdin);
    freopen("/dev/tty", "w+", stdout);   // not used

    fprintf(stdin, "enter a number:"); fflush(stdin);
    fscanf(stdin,"%d", &x);
    fprintf(stdin, "number is %d\n", x);
}
2014/05/06(火) 19:01:55.55ID:G4//2ydq
fprintf, fscanf じゃなく printf, scanf の方がよかったか
2014/05/10(土) 14:44:23.71ID:W8dcXoh3
>>641
stdoutをfcloseしてから、fileno(stdin)をfdopenすればいい。
ただそれをstdoutとして使うのは処理系依存になる。
マルチスレッド対応のライブラリはstdoutに代入できなくなってるから。
fdreopenがあればいいのだが。
2014/05/10(土) 16:08:42.04ID:S6+Ypxbi
どういう使い方を想定していますか?
2014/05/10(土) 20:31:33.38ID:XNOk+z7r
>>646
ソケットやシリアルのディスクリプタを引数として
なんか通信して処理する関数があるとするじゃろ?

それに「標準入出力」を渡してTESUTOとかしたいのじゃ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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