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/08/02(木) 21:30:52.30
>>497
kill()関数でpidにゼロや負数を入れるといいらしい
2012/08/02(木) 22:28:29.91
>>498
ありがとう,解決できました
500デフォルトの名無しさん
垢版 |
2012/09/17(月) 22:19:03.43
http://www.cs.miyazaki-u.ac.jp/~date/lectures/image_process2012/labeling201209gp40_uc.c

画像処理ラベリングのプログラミングなんですがこの穴あきをおしえてください

ここで間はなにをするとこなのかおしえてくださいorz
2012/09/17(月) 22:51:30.17
このプログラムを書いた人に訊きなさい
502デフォルトの名無しさん
垢版 |
2012/09/17(月) 23:28:29.51
馬鹿には聞いてません
503デフォルトの名無しさん
垢版 |
2012/09/18(火) 01:14:44.29
>>501

すみません、現在その人と連絡がとれなくて、困っています
504デフォルトの名無しさん
垢版 |
2012/09/18(火) 01:23:00.19
>>500 文字化けしてますかね??
for (y=0; y<h; y++){
for (x=0; x<w; x++){
i = y*w +x;

k = init[i];
while ( identical[k] != 0 ){

ここの間
identical[k] = 0; // ダミー
}
final[i] = k;
printf("%3d", final[i]);
}
printf("\n");
}
のとこです
2012/09/20(木) 00:24:53.72
豚切りすいません。
超初心者です....
touchでファイル作ろうとしたらpermission denied ってなるんで
chmodでパーミッション変更しようとしてもどうやら元々の奴の権利を変えるだけのモノ?
みたいで、作成できるように権限を変えたいのですが、
どなたか教えてもらえるとありがだいです。
2012/09/20(木) 01:22:55.36
ディレクトリにchmod
あと.hogercの確認
2012/09/20(木) 05:02:08.38
馬鹿には無理
2012/09/21(金) 20:51:51.26
505です。
レスありがとうございます。
あれから chmod 777を打ったんですが
Unable to change file mode on
と出てきてしまいました。
509505
垢版 |
2012/09/21(金) 22:01:57.26
何度もすいません。
ごめんなさいm(_ _)m
ディレクトリの権限がrootだったのでユーザーから作るのはやめて、
rootでファイルを作りました。
そのファイルというのは~.phpでして、それでhttp://localhost/~.phpをクリックしても
白紙でした。
どうすればPHPの情報が表示されるようになるのでしょうか⁇
2012/09/21(金) 22:37:37.44
プログラミング以前に、操作がままならないんだから、
UNIX板orLinux板の初心者スレに行け。
511デフォルトの名無しさん
垢版 |
2012/10/08(月) 16:57:39.28
オープンソースなLinuxって何でもかんでも無料で大丈夫なんだろうか
2012/10/08(月) 18:47:25.65
だからGNUやFSFが共産主義的思想に基いているという噂が広まるんだよ
2012/10/08(月) 19:31:21.24
板違いってことさえわからない頭で考えても無駄。
2012/10/08(月) 20:09:56.73
>512
それは噂じゃなくて事実www
2012/10/10(水) 14:24:45.90
ディレクトリストリームに関する質問です。
open関数にディレクトリのパスを入れると、ディレクトリストリームという
ものがオープンされると参考書に書かれています。
これは、open関数が"ハードディスク上"のディレクトリの中身の
ディレクトリやファイルの情報を"メモリ上"のstruct dirent構造体に
マップしていっていると考えていいのでしょうか?

あとreaddir関数に関する質問なのですが、この関数の引数のstruct dirent
型のポインタはreaddir関数で+1してから、このポインタに上書き(?)されて
ますか?それとも初めに引き渡されたポインタを保持してますか?
まだ勉強中なので的確な言葉選びができてなくて回りくどい言い回しに
なってそうですが教えてください。
2012/10/10(水) 15:07:31.31
>>515
openシステムコールなら
http://kazmax.zpp.jp/cmd/o/open.2.html
2012/10/10(水) 15:36:47.63
>>516
すみません間違えました。
open関数じゃなくてopendir関数でした。。。

この辺の認識が正しいかどうかはヘッダファイル見ていけば
わかるんですかね?
ヘッダファイルなんて現時点のスキルで読み始めたら時間かかって
しょうがねえだろうなあと思ってるんですが。
2012/10/10(水) 15:45:22.84
>>515
"opendir source code"でググって、ソース読め
2012/10/10(水) 15:46:09.33
>>517
システムコールの本を調べたら
2012/10/10(水) 16:15:37.67
>>518,519
キーワードあざっーす!
この辺に入っていかないとダメなんですね。

ずぶずぶやないかぁ・・・
2012/10/10(水) 16:25:38.33
勉強中なら、ストリームという概念がわかったところで次に行った方が良いんじゃないかと思うけど
まぁ人それぞれだよね。
2012/10/11(木) 00:06:26.42
scp 転送元ディレクトリ/*.* ./test

を実行したときカレントにtestというディレクトリが無いと
testというファイル名でファイルができてしまいます。
testディレクトリがなかったらエラーになるようにしたいのですが
どうしたらいいでしょうか?
2012/10/11(木) 00:11:06.80
>>522
そういうプログラムをつくればおk
2012/10/11(木) 00:49:13.63
scp 転送元ディレクトリ/*.* ./test/
525522
垢版 |
2012/10/11(木) 18:46:55.30
>>524
おお、できました。そういうのがしたかったです。
ありがとうございました。
2012/10/19(金) 07:30:16.88
openした際にメモリ上にマップされるFILE構造体のメンバに
ファイルディスクリプタがあると思うのですが、
同じファイルをopenするプロセスが複数あるとき、
それぞれのプロセス内のFILE構造体のメンバである
ファイルディスクリプタは異なる値で、実データへのポインタ
(inodeと対になっているメタデータ)は共有という理解で合ってますか?
2012/10/20(土) 01:57:02.57
ファイルディスクリプタは、プロセスごとに定義されているので、
偶然同じ値であることがあります。
stdin, stdout, stderr以外にファイルはオープンしてない場合、
次にfopenしたファイルのファイルディスクリプタは3です。

要するにファイルディスクリプタは全プロセスにまたがった固有のIDと見做せません。
2012/10/20(土) 06:15:36.17
>>527
ありがとうございます。

ようやくマルチタスクなる物が何なのかわかってきました。
2012/10/20(土) 07:26:12.03
>>528
君のレベルが分かりました
530デフォルトの名無しさん
垢版 |
2012/10/21(日) 04:02:48.75
プログラムを走らせると、topで見るとsystem CPUの値が異常に高いのですが、
systemってどんなことをした場合に消費されるのでしょうか?
2012/10/21(日) 07:06:44.21
ソウルからヨボセヨ 「ハングル輸出」は虚報 2012.10.20 03:01 [韓国]


 韓国独自の文字であるハングルは民族的自慢のタネで、10月9日が「ハングルの日」として以前は祭日だった。
 しかし祭日が多すぎると休日からははずされたため、復活を望む声が強い。
 来年には復活の可能性があるとかで、カレンダー業者が気をもんでいる。

 そのハングルをめぐってまずい話が起き問題になっている。
 先年、インドネシアの小さな島の部族がハングルを自分たちの「公式文字」に採択したというニュースがあり
「ハングルの優秀性を世界に示した」として官民挙げて大喜びした。

 教科書でも紹介されるまでになったのだが、最近、この話はマスコミが誇張したもので「公式文字採択」は虚報と分かった。
 政府も教科書や各種展示を手直しすることになったという。

 この少数部族というのはスラウェシ島に近いブトン島のチアチア族といい人口は6、7万人とか。
 固有の部族語を話しているが、韓国の団体が援助を餌にその部族語の表記にハングルを使うことを勧めた。

 その結果「公式文字に採択」となったというのだがインドネシアはローマ字が公用文字。地方の部族が別の文字を
公式文字に採択するのはありえない。
 実際は単にハングルを学んでいるといった程度だったのだ。ハングル愛国主義の勇み足である。(黒田勝弘)

http://sankei.jp.msn.com/world/news/121020/kor12102003020000-n1.htm
2012/10/21(日) 14:04:47.52
>>530
システムモードのCPU使用率が高いということは、つまりカーネルで動作していた時間が
多かったことを意味する。

例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり
動しているとか
2012/10/27(土) 22:06:34.21
>>532
>例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり
>動しているとか

この理由付けはどうなんだ
2012/11/01(木) 00:23:16.28
>>530
メモリ足んなくて、メモリスワップしてるような状況でもsystemが上がりがちですかね。
2012/11/01(木) 09:46:46.73
>>530
状況も説明せんと分かるわけがない
2012/11/05(月) 01:34:52.74
思いつくのを適当に列挙すると
・ユーザーランドから無駄にシステムコール発行してる
・ドライバが腐ってる
・ハードが壊れてる
・アタックされてる
かねえ
537デフォルトの名無しさん
垢版 |
2012/11/17(土) 19:30:00.85
教えてください

/proc以下の仮想ファイルと同様の仕組みを、自作アプリケーションの内部変数を
外から確認するのに使いたいのですが、それ用のAPIはありますか?

また、ターゲットに考えているアプリはパフォーマンスが非常に重要なのですが、
各種の高速ソフトウェアを動作させることが可能なOS自身が/proc以下を提供しているのだから、
そのような仕組みは処理のボトルネックにはならないだろうと期待しているのですが、どうですか?
2012/11/17(土) 19:37:46.89
text I/Oだから普通にボトルネックになりうる。
mmapを使ってください。
2012/11/17(土) 19:49:57.94
>>538
ありがとうございます!
2012/11/17(土) 23:31:49.74
system()で生成した別プロセスに対してシグナルを送信する場合、典型的にはどれくらいの時間がかかりますか?
(人間の感覚では一瞬ですが、たとえ一瞬でも実際は有限の時間がかかりますよね?)
また、シグナルと同様にプロセス間で非同期の通知をするための高速な方法は他にありますか?
2012/11/17(土) 23:45:34.34
シグナルはそんなに速くないよ。
特にシグナルハンドラー使う場合。
ハンドラはカーネル空間でなくてユーザ空間で実行しないといけないから。
システムコールにブロックされる可能性あるから、
シグナル割り込み可能性や再入可能性で調べてみて。

セマフォアやpthread_mutex(ただしプロセス間拡張あるUNIXで)使った方がいいよ。
2012/11/18(日) 00:05:08.76
>>541
そうなんですか・・・(´・ω・`)
msec以下での応答は難しいですかね・・・・・?
2012/11/18(日) 00:15:04.12
使うシステムコールやマルチスレッドかどうかによる。
ちなみにmsecレベルの応答性なら
高速性は必要とされてない応用にカテゴライズされると思う。
2012/11/18(日) 00:21:06.76
>>540
蒔きに火をつける時間と、のろしをあげる時間が必要
2012/11/18(日) 00:26:16.02
>>543
そうなんですか・・・喜
あ、スレッド間じゃなくプロセス間で

>>544
送信側でもたつくという意味ですかね?
2012/11/18(日) 00:28:46.80
マルチスレッドかどうかは、
中断可能じゃないシステムコールを呼んでいる時に
シグナル受けて処理に時間がかかるかどうかに関わってくる。
マルチスレッドなら、シグナル受けるの専用のスレッド置いておけば良い。
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&nbsp;Xeon&nbsp;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発祥ですよね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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