UNIXプログラミング質問すれ Part9
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/03/18(火) 08:10:34前スレ
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
0153デフォルトの名無しさん
2008/07/20(日) 16:44:50funopenはBSD系以外でも使えるの?
0154デフォルトの名無しさん
2008/07/20(日) 16:59:58結局1.9では諦めたんじゃなかったっけ?
0155デフォルトの名無しさん
2008/07/20(日) 17:19:10研究メインだとこうなっちゃうのかな
0156デフォルトの名無しさん
2008/07/20(日) 18:58:22あれ…ほんとだ。linuxとかには無いのか。知らなかった。
0157デフォルトの名無しさん
2008/07/20(日) 20:10:560158デフォルトの名無しさん
2008/07/20(日) 21:29:47#define _BSD_SOURCE
してるからBSDにもあるんじゃないの?
ただ>>146の要望には、
setvbufによる行バッファリングとfileno(3)+poll(2)で十分だと思う。
0159デフォルトの名無しさん
2008/07/20(日) 23:22:570160デフォルトの名無しさん
2008/07/23(水) 11:16:20UNIXのCでCVS+ant的な事をしたいんだけど、できる?
antじゃない方が良い?
0161デフォルトの名無しさん
2008/07/23(水) 13:12:370162デフォルトの名無しさん
2008/07/23(水) 13:36:02ant 使った事ないから他に何か無いかな、と。
0163デフォルトの名無しさん
2008/07/23(水) 14:21:18なんで使ったことないものが候補になるんだよ。
CVS+antって、具体的に何がしたいの?
0164デフォルトの名無しさん
2008/07/23(水) 14:30:08C言語だと、CVS と何を組み合わせると良いのでしょうか。
そもそもantで何が出来るか、あんまりわかってないのですが。。。
0165デフォルトの名無しさん
2008/07/23(水) 14:39:280166デフォルトの名無しさん
2008/07/23(水) 15:29:56CVSだけでおk
0167デフォルトの名無しさん
2008/07/23(水) 15:54:42UNIX上に最新ソース取得して、ビルドして、配布して、、、
というのを、なるべく自動化したいなと。
UNIX側に、そういうシェルスクリプト用意すれば良いって話?なのかな。
0168デフォルトの名無しさん
2008/07/23(水) 16:03:43なにがantなのかわからん
0169デフォルトの名無しさん
2008/07/23(水) 17:03:01antなら色々できそうな雰囲気あったので使ってみようと思ったんだけど、
今回は妥協の方向で。。。
0170デフォルトの名無しさん
2008/07/23(水) 17:35:110171デフォルトの名無しさん
2008/07/23(水) 20:32:590172デフォルトの名無しさん
2008/07/24(木) 14:30:47ant使うとどの辺が楽になるのか、どなたかプレゼンしてくれまいか。
0173デフォルトの名無しさん
2008/07/24(木) 14:37:10時間がないといっときながら2chみてるし
わけわかめ
0174デフォルトの名無しさん
2008/07/24(木) 17:00:58Javaの開発で使うときは楽ちんだけど、そうでなければ別に〜、という感じだよ。
makeでじゅうぶんですよ。
0175デフォルトの名無しさん
2008/07/25(金) 00:22:47こいつの信用度はどのぐらい?
0176デフォルトの名無しさん
2008/07/25(金) 02:15:53まあまあ信用してもいい
0177デフォルトの名無しさん
2008/07/30(水) 22:48:100178デフォルトの名無しさん
2008/08/04(月) 16:14:05open(char *, int, ...); で、
...に許されるのはmode_t一つです。
0179デフォルトの名無しさん
2008/08/06(水) 06:49:40UNIXの改行コードLFの時はうまく読み込めるのですが、
それ以外の時は読み込みに失敗します。
改行コードにかかわらず、読み込めるようなコードはどのように書けばよいのでしょうか?
0180デフォルトの名無しさん
2008/08/06(水) 07:06:01「失敗する」って具体的に何が起こるの?
よくわからんからコード晒して欲しいな。
0181デフォルトの名無しさん
2008/08/06(水) 11:24:370182デフォルトの名無しさん
2008/08/06(水) 12:23:360183デフォルトの名無しさん
2008/08/09(土) 17:29:070184デフォルトの名無しさん
2008/08/09(土) 19:00:48今はLFオンリーなのが多い。
何故CR + LFオンリーにしないのかは謎。
0185デフォルトの名無しさん
2008/08/10(日) 15:59:53execl("bin/cat", "cat", "foo.txt", NULL);
みたいに渡さないとダメなんですか?
第二引数のcatって冗長だと思うんですけど。
第一引数でcatって分かるじゃないですか。
0186デフォルトの名無しさん
2008/08/10(日) 16:03:08もっとも簡単なのを教えてください
Windowsなら、Visual BasicとかDelphiがあるので手軽なのですが...
0187デフォルトの名無しさん
2008/08/10(日) 16:48:42つ execl("/bin/sh", "-", NULL)
0188デフォルトの名無しさん
2008/08/10(日) 23:01:07GambasっていうBasic開発環境がある。
GUIポトペタもできて、使い勝手はVBに近い。
ものの試しにいじっただけなので、
どこまでのことが出来るかは知らないし
情報も少ないから初心者には導入が難しそう。
あとはWideStudioかな。
いろんな言語に対応してて、ハローワールド程度の
GUIならウィザードで作ってくれる。
それ以上のことがどこまで出来るかはしらない。
0189デフォルトの名無しさん
2008/08/11(月) 12:15:17C/C++プロジェクトを新規作成したときに
*.cppファイルや*.hファイルのテンプレートを入力できるんだが、
そこで使えるマクロ($AUTHORとか)を教えてほしいのだが。
0190189
2008/08/11(月) 12:16:130191デフォルトの名無しさん
2008/10/03(金) 15:37:54ncursesライブラリを使えばできるらしいのだけれども,やりたいことは,
topコマンドのようなものを作りたいだけなので,ncursesを持ち出すまでも
ないと思うのですが,参考資料等ないですか?
printfで制御コマンド直うちとかのレベルでOKです.
Linuxで書いてるのでLinuxでお願いします.
0192デフォルトの名無しさん
2008/10/03(金) 15:58:03端末の資料をさがすべき
0193デフォルトの名無しさん
2008/10/03(金) 17:51:57ウチの linux の top は libncurses.so を link してるように見えるが
0194デフォルトの名無しさん
2008/10/03(金) 18:46:360195デフォルトの名無しさん
2008/10/06(月) 10:10:05terminfo/termcapのライブラリ使えば?
topレベルなら簡単に実装できる。
cursesなら整形もやってくれるのでさらに楽だが。
0196デフォルトの名無しさん
2008/10/11(土) 17:56:440197デフォルトの名無しさん
2008/10/12(日) 12:10:19で簡単に取得できる。
0198デフォルトの名無しさん
2008/10/26(日) 11:54:55実行後シェルでenv打っても結果が反映されないです。
プロセスが消えても設定残す方法ってあるんですか?
ちなみにタイムゾーンの設定です。
0199デフォルトの名無しさん
2008/10/26(日) 12:44:07system("setx TZ JST-9");
0200デフォルトの名無しさん
2008/10/26(日) 13:14:250201デフォルトの名無しさん
2008/10/26(日) 15:12:42システムグローバルなものじゃないから無理
0202ヤマ
2008/10/26(日) 18:06:52どうぞお見知りおきを・・・
さっそく質問ですが、よく聞く『UNIX』『Linux』って呼ばれているものは
基本的に何に利用するものなのですか?
0203デフォルトの名無しさん
2008/10/26(日) 18:10:24コンピュータを操作するのに利用する。 OS ってやつだ。
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
0204デフォルトの名無しさん
2008/11/03(月) 21:36:58readdir_r()とかのシステムコール呼んだとき、
帰ってくるファイル名の文字エンコードって、どうやったらわかりますでしょうか?
0205デフォルトの名無しさん
2008/11/04(火) 03:19:49'\0'と'/'以外からなる任意のバイト列。
0206デフォルトの名無しさん
2008/11/04(火) 03:29:330207デフォルトの名無しさん
2008/11/04(火) 08:27:29ぶっちゃけUNIXによる。
またファイルシステムやmount時のoptionでも違う。
たとえばMac OS X + HFS+だとUTF-8でNFDになってる。
しかしUFSやNFS上だと、NFDじゃないファイルも作れる。
最近はUTF-8が多いけど、NFDになってるのはMac OS Xくらい。
それからLinuxはmount時にiocharsetオプションで、
内部コードから任期の文字コードにファイル名変換できる。
0208デフォルトの名無しさん
2008/11/04(火) 12:39:57ファイル名を現在のロケールの文字コードで表示したい、というときに
どうするべきなのか。
0209デフォルトの名無しさん
2008/11/04(火) 12:51:03nkfのソースでも読め
0210デフォルトの名無しさん
2008/11/04(火) 14:43:41POSIXには規定がないので、
まず自分で必要なものだけ実装したら?
通常UTF-8, EUC_Japanを想定しておけばいいと思う。
ただMac OS XはNFDされてるし、
SDカードをmountするとShift_JISのままのケースが結構あるようだ。
0211204
2008/11/05(水) 00:52:27結構混沌としてんですね。
UTF-8化してないCygwinもマルチバイトWinAPIと同じやつ(≒Shift_JIS)返してくるし…。
Latin-1の連中もいるし…(←これ重要)。
POSIXの規格に沿った優等生的方法じゃなくてもいいんで、
これで判断すれば大抵うまくいく、って方法があれば御教示願います。
(残りも誤検出ではなく、エラーで扱える方法ならなお良し。)
日本語ファイルが存在する保証もないので、実際のファイル名から検出、
は残念ながら無しの方向で。
あと、環境変数はLANG=Cです。むむむ…。
0212デフォルトの名無しさん
2008/11/05(水) 23:01:58環境変数G_FILENAME_ENCODINGに設定ヨロ」
みたいな話で我慢するしかないんじゃね。
http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html
0213デフォルトの名無しさん
2008/11/06(木) 07:01:23557 :名無しさん@お腹いっぱい。:2008/11/05(水) 03:57:38
HP-UX (11i)にHULFT 6を入れてファイル転送をしているのですが
タイムアウトのテストができなくて困っております・・・
ファイルの集信側にてファイル受信コマンド「utlrecv」
を実行しているのですが、このコマンドからtime out(戻り値:4)が
返されたときのテストをしたいです。
タイムアウト時間を最小値に設定してみたのですが
10秒単位でしか設定できないため
通信に最低でも10秒以上かからないとテストにならないようです。
しかし、HP-UXのケーブルを抜いたりできない環境です。
仕方ないので、巨大なファイルを転送したら10秒以上かかって
タイムアウトになるかと思ったのですがtime outにならず
(あまり巨大なファイルだとall queue errorが返されてしまった)
どうやってテストしたらいいのか悩んでおります・・・
HULFTなんてどこで質問していいのかわからなくて
スレ違いかもしれませんが、HULFT使ったことある方
アドバイスいただければと思います。
0214デフォルトの名無しさん
2008/11/06(木) 08:27:00accept(2)だけしてほったらかしのサーバを書けばいいじゃない。
ちなみにプログラム書けない奴は板違い。
0215デフォルトの名無しさん
2008/11/09(日) 20:38:42acceptを含む通信を行うので
acceptのみしか行わないサーバを作ってテストことは不可能だろJK
0216デフォルトの名無しさん
2008/11/09(日) 22:05:01サポートに聞いたほうが早いかもね
0217デフォルトの名無しさん
2008/11/10(月) 01:02:12receiveする方がacceptするの?
0218デフォルトの名無しさん
2008/11/10(月) 01:19:240220デフォルトの名無しさん
2008/11/10(月) 02:13:180221デフォルトの名無しさん
2008/11/10(月) 04:35:42でもUNIXでHULFTかよ。
ソケットでやり取りした方が簡単にテストできるよwwww
0222デフォルトの名無しさん
2008/11/10(月) 20:15:370223デフォルトの名無しさん
2008/11/13(木) 06:38:27配信前実行ジョブや配信後実行ジョブを登録することができます。
つまり、配信前実行ジョブとしてスリーかませればOK
番号順に処理が実行されるんで、�Aにスリープを仕込めば
集信側にレスポンスが返るまでに時間がかかる↓
■ファイル集信側 ■ファイル配信側
�@utlrecv (配信要求実行)→→→→→→→→→�A配信前ジョブ実行
↓
�Cファイル受信←←←←←←←←←←←←←←←�Bファイル配信
↓
�D配信後ジョブ実行
※ただし、HULFT 6からは、�Aでスリープかませても、
「ジョブ実行中だよ」メッセージが集信側に返されるので
タイムアウトにならないことが発覚。
この方法は使えないお。
ケーブルも抜けない場合、どうすりゃいいんだろうね・・・・(^-^A)
俺はでかいファイル送信して、その隙にケーブル抜いてテストしてたよ。
回線を一時的にブロックすると占有するアプリでも
作れとかいうのだろうか・・チョット得ろい人教えてくれ。
0224誤字スマソ
2008/11/13(木) 06:40:40配信前実行ジョブや配信後実行ジョブを登録することができます。
つまり、配信前実行ジョブとしてスリープかませればOK
番号順に処理が実行されるんで、�Aにスリープを仕込めば
集信側にレスポンスが返るまでに時間がかかる↓
■ファイル集信側 ■ファイル配信側
�@utlrecv (配信要求実行)→→→→→→→→→�A配信前ジョブ実行
↓
�Cファイル受信←←←←←←←←←←←←←←←�Bファイル配信
↓
�D配信後ジョブ実行
※ただし、HULFT 6からは、�Aでスリープかませても、
「ジョブ実行中だよ」とのメッセージが集信側に返されるので
タイムアウトにならないことが発覚。
この方法は使えないお。
ケーブルも抜けない場合、どうすりゃいいんだろうね・・・・(^-^A)
俺はでかいファイル送信して、その隙にケーブル抜いてテストしてたよ。
回線を一時的にブロックするとか占有するアプリでも
作れとかいうのだろうか・・チョット得ろい人教えてくれ。
0225デフォルトの名無しさん
2008/11/13(木) 09:51:440226デフォルトの名無しさん
2008/11/13(木) 10:21:290227デフォルトの名無しさん
2008/11/13(木) 10:27:570228デフォルトの名無しさん
2008/11/13(木) 11:41:260229デフォルトの名無しさん
2008/11/14(金) 02:03:18OSはHP-UXです。
ncursesをインストールしようとおもい、
./configure --prefix=$HOME --enable-widec
というオプションをつけてコンパイルし
ホームディレクトリ以下にインストールしました。
早速簡単なサンプルプログラムを書いて
gcc hoge.c -lncursesw -I/home/hogehoge/include/ncursesw/
というコンパイルオプションをつけてコンパイルしたのですが、
hoge.c:1 から include されたファイル中:
/home/hogehoge/include/ncursesw/ncurses.h:66:34: error: ncursesw/ncurses_dll.h: そのようなファイルまたはディレクトリはありません。
/home/hogehoge/include/ncursesw/ncurses.h:141:29: error: ncursesw/unctrl.h: そのようなファイルまたはディレクトリはありません。
In file included from hoge.c:1:
と、エラーが出てしまいます。
ですが、
:~/hoge $ ls -l ~/include/ncursesw/
合計 784
-rw-r--r-- 1 meso users 79973 11月 12日 06:25 curses.h
-rw-r--r-- 1 meso users 6591 11月 12日 06:25 cursesapp.h
rw-r--r-- 1 meso users 2891 11月 12日 06:25 eti.h
-rw-r--r-- 1 meso users 3947 11月 12日 06:25 nc_tparm.h
lrwxrwxr-x 1 meso users 8 11月 12日 06:25 ncurses.h -> curses.h
-rw-r--r-- 1 meso users 3898 11月 12日 06:25 ncurses_dll.h
-rw-r--r-- 1 meso users 3779 11月 12日 06:25 panel.h
-rw-r--r-- 1 meso users 3014 11月 12日 06:25 unctrl.h
とインクルードファイルは存在しています。
どのようにコンパイルオプションをかえれば
うまくコンパイルされるでしょうか ?
0230デフォルトの名無しさん
2008/11/14(金) 10:01:18-I/home/hogehoge/include/ncuresesw/
を
-I/home/hogehoge/include
に変え、
hoge.c で
#include <ncureses.h>
を
#include <ncuresesw/ncureses.h>
以下略
0231デフォルトの名無しさん
2008/11/15(土) 21:34:44おそくなりましたが、有り難うございます。
0232デフォルトの名無しさん
2008/11/19(水) 00:23:38C言語から呼び出すべき関数/システムコールをご存知の方がいましたら、
ポインタでもかまいませんので教えて頂けないでしょうか。
処理時間に制約の少ない、かつ、CPU100%となるようなプログラムがあり、
別プロセスに影響を与えないように実行制限をかけるため、また、発熱を
押さえるため、一定以上のCPU使用率を超えた場合に SIGSTOP, SIGCONT を
送って、数秒平均で見ると CPU 使用率を一定以下に保たせるような
プログラムを作ろうとしています。
長文すみません、どなたかヒントをおしえて頂きたくお願いします。
0233232
2008/11/19(水) 00:25:10Mac OS X なので vmstat, /proc が無いのだと思います。
# 知らないパスの中に埋もれてるだけなのかも...。
0234デフォルトの名無しさん
2008/11/19(水) 00:45:35http://stackoverflow.com/questions/220323/determine-process-info-programmatically-in-darwinosx
0235232
2008/11/19(水) 01:07:28ページ上部のものは自身のプロセス情報ですね。
コメント内のlibproc.hあたりに宝の山が眠ってる予感。
調べてみます。ありがとう。
0236デフォルトの名無しさん
2008/11/19(水) 08:59:31http://www.opensource.apple.com/darwinsource/10.5.5/
のadv_cmds-119にpsのソースがある。
それから、
$ sudo ktrace ps u
$ kdump
すると大体の流れが分かる。(ktrace.outをカレントディレクトリに作るので注意)
0237232
2008/11/19(水) 23:57:4210.5.5 + Xcode ですが locate ktrace で見つかりませんでした。
0238デフォルトの名無しさん
2008/11/20(木) 12:33:500239デフォルトの名無しさん
2008/11/20(木) 13:43:18何言ってるんだコイツ・・・
0240デフォルトの名無しさん
2008/11/20(木) 15:45:060241デフォルトの名無しさん
2008/11/20(木) 16:00:000242デフォルトの名無しさん
2008/11/20(木) 16:03:370243デフォルトの名無しさん
2008/11/20(木) 17:15:14一定の基準を満して金払えばUNIXを名乗れる。
*BSDはUNIXを名乗れない。もちろんLinuxも。
ただ、それとUNIXプログラミング的「普通」とは、また別の話。
0244デフォルトの名無しさん
2008/11/20(木) 20:30:4810.4だとこんな感じだが。
$ lsbom /Library/Receipts/BSD.pkg/Contents/Archive.bom | egrep /usr/bin/ktrace
./usr/bin/ktrace 100555 0/0 34740 727828848
0245デフォルトの名無しさん
2008/11/21(金) 14:10:48man dapptraceだな。
本家FreeBSDの変更に追従。
0246デフォルトの名無しさん
2008/11/21(金) 20:08:33>商標の問題だからね。
>一定の基準を満して金払えばUNIXを名乗れる。
どんな基準かちゃんと知ってる?
0247デフォルトの名無しさん
2008/11/21(金) 21:11:030248デフォルトの名無しさん
2008/11/21(金) 21:45:310249デフォルトの名無しさん
2008/11/22(土) 08:29:40良く知らないなら http://www.unix.org/ のドキュメントを読むといいよ
0250デフォルトの名無しさん
2008/11/22(土) 15:40:24Linuxとか
0251デフォルトの名無しさん
2008/11/23(日) 03:32:380252デフォルトの名無しさん
2008/11/25(火) 00:19:31メモリをファイルとして扱う関数って無いでしょうか?
ファイルディスクリプタを介してメモリを読み書きしたいのですが...
■ このスレッドは過去ログ倉庫に格納されています