UNIXプログラミング質 ..
[2ch|▼Menu]
669:デフォルトの名無しさん
05/08/10 09:38:00
>>668
ネットワークプログラミングスレのテンプレへGO!

670:デフォルトの名無しさん
05/08/10 09:47:13
ptyの使い方を解説したページってある?

671:デフォルトの名無しさん
05/08/10 10:19:55
>>670
URLリンク(www.sony.co.jp)
あとはStevens本とか。


672:デフォルトの名無しさん
05/08/10 11:07:46
>>670
script(1)のソース。
URLリンク(svn.clkao.org)

673:デフォルトの名無しさん
05/08/10 11:08:50
それからopenpty(3)を使うこt。

674:デフォルトの名無しさん
05/08/10 22:38:25
errnoに自分で使う値を加えたいんですが、システムのerrnoと
値が衝突しないような方法はないでしょうか

675:デフォルトの名無しさん
05/08/10 22:41:11
ありません

676:デフォルトの名無しさん
05/08/10 23:06:02
大体、errnoに代入できるとは限らない。
関数呼び出しの可能性がある。with pthreadの場合。

URLリンク(www.opengroup.org)

677:デフォルトの名無しさん
05/08/11 00:42:57
左辺値に展開される関数だからどっちにしても代入できるだろ

678:デフォルトの名無しさん
05/08/11 01:29:24
>>676
そんなこといったら読み出しだって保証されませんよ?

679:デフォルトの名無しさん
05/08/11 11:16:56
誰も何も保障してくれないのか

680:デフォルトの名無しさん
05/08/11 12:16:26
誰も何も保障してくれない事は保障します

681:デフォルトの名無しさん
05/08/11 12:49:48
URLリンク(linas.org)
このページの要約お願いします

682:デフォルトの名無しさん
05/08/11 13:37:17
嫌です

683:デフォルトの名無しさん
05/08/11 18:06:23
Cursesとかで現在カーソルのある座標を取得する関数とかありませんか?調べていますがなかなか見つからない

684:デフォルトの名無しさん
05/08/11 18:07:24
>>683
環境はLinux、GCCです

685:デフォルトの名無しさん
05/08/11 18:10:28
>>683
マルチは氏ね

686:デフォルトの名無しさん
05/08/11 18:18:04
>>684=683
向こうに挨拶くらいしてから移動しろ。
cursesには現在座標を取得する関数は確かないから、
自前でどこにあるかを追跡し続ける必要があったと思う。
つーか、目的が判らんからそれ以上はなんとも言えん。

687:デフォルトの名無しさん
05/08/11 18:46:22
Linuxならncurses
getyxだろ?

688:デフォルトの名無しさん
05/08/11 18:54:31
cursesってまだ存在してるの?
正気?

689:デフォルトの名無しさん
05/08/11 19:13:10
>>688
aho

690:デフォルトの名無しさん
05/08/11 20:54:35
>>686
>>687
ありがとうございます。勉強になりました。
ファイラーを作ろうとしているのですがカーソルを押したときに座標を読み取ってどのファイルが選択されているかをチェックしようとしていました。試してみます。



691:デフォルトの名無しさん
05/08/11 21:34:45
>>688
え? Solaris ではデフォルトだけど。

692:デフォルトの名無しさん
05/08/12 00:42:13
実はマウスポインタの座標が欲しいんだったりしてw

693:デフォルトの名無しさん
05/08/12 02:20:28
ncursesならマウスも扱えるぜー!!!

694:デフォルトの名無しさん
05/08/13 15:56:40
メールの送信日時の欄にJSTなどのタイムゾーンが付加されますが
このタイムゾーンの文字列の取得方法を教えてください。



695:デフォルトの名無しさん
05/08/13 16:18:36
>>694
正規表現で抜けばいいんでないの?

696:デフォルトの名無しさん
05/08/13 17:39:22
>>694
time_t t = 1116908090;
printf("%s\n",localtime(&t)->tm_zone);

697:デフォルトの名無しさん
05/08/14 00:32:09
リモートコンピュータのCPU使用率の取得方法を教えてください。

698:デフォルトの名無しさん
05/08/14 01:28:55
>>697
リモート側でrstatd動かすとかsnmp使うとか


699:デフォルトの名無しさん
05/08/14 12:12:00
Cのプログラムで、
UNIX上で、とあるコマンドをどのユーザーが発行しても同一ユーザーが
発行しているようにさせたいのですが、どのようにすればいいのでしょうか?

自分で思いつくところだと、コマンドを発行させたいユーザが起動するデーモン
プログラムに、その他ユーザーが発行要求を投げて。デーモンはそれをSystem関数やら
何やらで発行して結果を返す。という感じで考えているのですが、
他に妙案ってありますでしょうか。

文章力無くてすみません


700:デフォルトの名無しさん
05/08/14 12:25:41
man chmod

701:699
05/08/14 12:44:24
>>700

返信ありがとうございます。
実行権を与える、というわけではなくてA、Xとユーザーが存在するならば、

Aがxxxを実行 →psで見るとxxxをAが実行していることになっている。
これを、
Xはxxx_daemonを起動しておく
Aがxxx_daemonを実行 → xxx_daemonからxxxをコール →psで見るとxxxをXが実行していることになっている。

という事がしたいのです。


702:デフォルトの名無しさん
05/08/14 13:44:30
man setuid

703:699
05/08/14 14:23:17
>>702
ありがとうございます。setuid使えばなんとかなりそうです。
お騒がせしましてすみませんでした。



704:デフォルトの名無しさん
05/08/15 09:42:45
プログラム上からディレクトリを作成する方法を教えてください


705:デフォルトの名無しさん
05/08/15 09:53:02
mkdir(2)

706:669
05/08/15 23:38:03
度々すみません。
早速レス頂いたとおりchmod ug+sでモジュールに権限つけたら上手くいったのですが、
該当モジュールがシェルで、中でコマンド発行している場合はユーザが元のユーザで実行
している扱いになってしまいます。(man chmodでもそう書かれていたのですが)。
これを回避する方法ってありますでしょうか?



707:デフォルトの名無しさん
05/08/16 00:02:38
なんで派生して自分で考えようとは思わないの?
ってかなんでそっちなんだ?

708:デフォルトの名無しさん
05/08/16 01:21:32
man setuid

709:デフォルトの名無しさん
05/08/16 10:12:28
C言語で現在の時間を変更する関数を教えてください

710:デフォルトの名無しさん
05/08/16 10:17:02
settimeofday


711:デフォルトの名無しさん
05/08/16 10:18:30
man man

712:デフォルトの名無しさん
05/08/16 10:21:46
>>709
限りなく光速に近い速度で移動する

713:デフォルトの名無しさん
05/08/16 10:40:23
co というコマンドの使い方を教えてください

714:デフォルトの名無しさん
05/08/16 10:50:35
まずci

715:デフォルトの名無しさん
05/08/16 12:34:42
>>713
man co だろ。はいはいワロスエロス

716:デフォルトの名無しさん
05/08/16 14:47:45
>>713
限りなくco速に近い速度で移動する

717:デフォルトの名無しさん
05/08/16 15:56:27
そんなco息な答えを

718:デフォルトの名無しさん
05/08/16 22:16:53
coこはくだ質なインターネッツですね

719:669
05/08/17 00:10:13
>>707
>>708

結局所有者rootのCモジュールにug+s、で、その中でsetuidしてsystem関数をコールさせることで
落ち着きました・・・まだ実機で確認取れてないんですが(汗

アドバイスありがとうございました(感謝


720:デフォルトの名無しさん
05/08/17 01:45:51
>>719
まぁそういう場合はsudo使うと楽なのだが。

721:デフォルトの名無しさん
05/08/17 10:22:21
make clean:
に、rm *.oと書いているんですが、
*.oがひとつもない時はエラーになってしまいます。
エラーを出さないようにするにはどうしたらいいんですか?


722:デフォルトの名無しさん
05/08/17 10:26:16
-rm
rm -f

723:デフォルトの名無しさん
05/08/17 12:17:02
山ほどあるほかのソフトでどうやってるかというのを見る気はないのか


724:デフォルトの名無しさん
05/08/17 21:04:09
山ほどゴミコマンド作って悲しくないのか

725:デフォルトの名無しさん
05/08/17 21:37:44
/usr/local以下にある限り問題ない

726:デフォルトの名無しさん
05/08/18 08:25:38
>>721
たぶんあなたのしたいのはこういうこと。

エラーになっても、makeが無視して続行するようにする。
URLリンク(www.gnu.org)

727:デフォルトの名無しさん
05/08/18 08:27:22
あと、cleanターゲットの時は、.PHONYも参照のこと。

728:デフォルトの名無しさん
05/08/19 23:44:09
UNIXプログラミングされておられる方って、Xは使わずコンソール画面でソース書いておられるのでしょうか?
もしくは、cygwinなんかを使ったり。。
貴方の最適環境を教えてちょ


729:デフォルトの名無しさん
05/08/19 23:52:02
Xは使う。但し、端末エミュレータを動かすのが主目的。
X端末でなければ当然telnet端末だったりするわけだから、
通常GUIの開発でもない限り端末エミュレータ上でmuleを動かしている。

730: ◆i6G.jsz.NY
05/08/20 00:34:08
うちも基本的にX使ってる
理由は、自由に日本語を表示/入力したいのと、いっぱい行を表示させたいの
ちょっと、コード書いたり使うくらいならコンソールでもやるけどね

>もしくは、cygwinなんかを使ったり。。
これだと、Windowsプログラミングにならないかね?

自分は、
kterm 6.2.0 custom
kinput2 version 3.0 (1999/05/26)
Canna Server (Ver. 3.6)
gcc 3.3.3 custom
VIM - Vi IMproved 6.3 custom
XFree86
ってかんじかな。
細かいのはおいとくけど

731:デフォルトの名無しさん
05/08/20 01:25:55
>>728
X は使うけど、起動してるのは全画面表示の mlterm と Emacs。
Emacs だけ端末エミュレータで起動してるのは、elscreen と screen で
キーバインドがゴッチャになって混乱するから。

やってる作業自体に本質的に必要ってわけではない。たまに Flash 見たり
するのに Firefox 起動するとか、そんなもんじゃねーかな。


732:デフォルトの名無しさん
05/08/20 02:02:28
ちょwwwっおまwwww
Cannaとかまだあったんか

733:デフォルトの名無しさん
05/08/20 04:12:24
一応ね
使っている人がいるから保守が続いているけど
新規にインストールする人は年々減ってる

734:デフォルトの名無しさん
05/08/20 08:34:57
XEmacs, gnuserv
gnome-terminal, screen, gnuclient, ssh

eclipse (with/without emacs plugin)

Xcode (Mac OS X)

不思議なもんで、screenがあっても、
gnome-terminalのtabは使うし、virtual desktopも使う。

735:デフォルトの名無しさん
05/08/20 14:54:51
ふつーSKK

736:デフォルトの名無しさん
05/08/20 18:16:01
ふつーATOK


737:デフォルトの名無しさん
05/08/22 00:18:35
俺は SJ3 使ってますがなにか?

738:デフォルトの名無しさん
05/08/22 00:20:17
べつに。

739:デフォルトの名無しさん
05/08/22 19:01:11
Winから見ると古代遺跡が稼動してる幹事

740:デフォルトの名無しさん
05/08/22 19:03:25
Winの様に進化ではなく、停滞してる証

741:デフォルトの名無しさん
05/08/22 20:04:27
進化・・・ってどこ?

742:デフォルトの名無しさん
05/08/23 12:14:30
テンポラリディレクトリの取得方法を教えてください

743:デフォルトの名無しさん
05/08/23 12:18:51
mktemp

744:デフォルトの名無しさん
05/08/23 13:41:57
mktemp(3) なんて使っているやつはばかです。

745:ばか
05/08/23 14:33:32
すみません

746:デフォルトの名無しさん
05/08/23 20:23:01
tmpnam()

747:デフォルトの名無しさん
05/08/25 07:07:18
CPUに関する情報はどのように取得したらよいのでしょうか?
特にクロック数を取得したいのですが。
環境はOpteron、Fedora Core4、gcc4.0.0です。
マシンはいくつかあって、CPUのクロックが違います。

748:デフォルトの名無しさん
05/08/25 07:50:27
どっかで見たことあるな・・・
メモリ情報とかいっぱいあるフォルダに入ってた悪寒
ごめんドコかはわからんorz

749:デフォルトの名無しさん
05/08/25 08:04:03
>>747
cat /proc/cpuinfo
fopen("/proc/cpuinfo", "r")

750:デフォルトの名無しさん
05/08/25 13:26:00
フォルダねえ。

751:デフォルトの名無しさん
05/08/25 15:34:16
なんだよ

752:デフォルトの名無しさん
05/08/25 15:36:59
er には伸ばし棒(ー)をつけて下さい。
スレリンク(tech板)


753:デフォルトの名無しさん
05/08/25 19:01:05
UNIXならディレクトリでしょ。

754:デフォルトの名無しさん
05/08/25 20:07:21
ディレクトリ → おたく
フォルダー  → 一般人

755:デフォルトの名無しさん
05/08/25 20:10:14
さすがにそれでは釣れないぞ

756:デフォルトの名無しさん
05/08/25 20:56:33
みなさんがUNIXでC++を書くとき、
標準ライブラリのリファレンスは何を参照していますか?
manのようにUNIX環境でさくっと参照できる資料はないもんでしょうか。


757:デフォルトの名無しさん
05/08/25 21:04:01
JISX3014

758:デフォルトの名無しさん
05/08/25 21:08:39
C++なんて書きません。

759:デフォルトの名無しさん
05/08/25 21:23:20
>>756
無い
あきらめろ

760:デフォルトの名無しさん
05/08/25 22:07:01
>>756
X3J16-96がhtmlになっているのをnamazuで検索。
ぐぐれば転がっている。

1997 C++ Public Review Document

もっと新しいのでhtmlになっているのある?

761:デフォルトの名無しさん
05/08/25 22:07:52
>>760
> X3J16-96が

これはよぶん。省略してちょ

762:デフォルトの名無しさん
05/08/25 22:10:31
おれここよく見てるw
ちょろっと思い出すにはお手軽。
URLリンク(www005.upp.so-net.ne.jp)

763:デフォルトの名無しさん
05/08/26 10:23:48
自分自身の実行パスの取得方法を教えてください

764:デフォルトの名無しさん
05/08/26 10:34:40
>>763
argv[0] …か?

765:デフォルトの名無しさん
05/08/26 10:38:05
>>763
その話題は荒れるからよせw

766:デフォルトの名無しさん
05/08/26 16:51:12
>>764
>>3の1.14

767:デフォルトの名無しさん
05/08/27 22:30:46
C++相談室 part43から誘導です。

Fedora Core 2でUSB<->Serial変換を使って制御をやっています。
C++で自前のclassですが、基本はCのread()とwrite()を使ってのやり取りです。
Win 2kのハイパーターミナルで通信するのに比べると、
FC2でreadする動作速度が遅いようです。

何かreadを高速化させる方法と言うのがあるんでしょうか?
タイミングの問題でしょうか。

使用している装置は内部にFTDIのUSBのチップが載っています。

768:デフォルトの名無しさん
05/08/28 00:23:03
>>767
stty

769:デフォルトの名無しさん
05/08/28 01:37:24
>>768
えーと、sttyでbaud rateを変更せよ、という事でしょうか。
出来ればもう少し詳しくお願いします。

自分の書き方が悪かったのですが、
読む量は非常に少なく、read()1回あたりに数characterです。
read()を実行してから、読み始めるまでが遅い印象です。
ちゃんと計測していませんが、read()1回にコンマ数秒かかっています。

770:デフォルトの名無しさん
05/08/28 02:15:49
openからreadまでのソースをさらした方が早いと思う。

tcgetattr、tcsetattr、cfsetispeed、cfsetospeedあたりを駆使してください。
ただ、ハードウェアやドライバの問題の可能性もあります。

771:767
05/08/28 02:43:53
ちょい長いですが、かいつまんで晒します。
Class名は晒すとまずいので、myClassにします。

int main(){
myClass mon("/dev/usb/ttyUSB0");
mon.Open();

(略)機器特有の設定のみ。この時点でread()を使っても遅いので、
ここでの設定は細かく晒しません。

cout << mon.ReadVoltage() << "¥t" << mon.ReadCurrent() << endl;

return 0;
}

mainを短くするとこんな感じ。
ちなみに、FTDIのチップというのは、Linux 2.4.20以降に標準でデバドラが入ってます。

772:767
05/08/28 02:53:55
続き

myClass::myClass(string deviceName)
: RS232C(deviceName)
{
SetIOSpeed(B115200);
SetDelimiter(MAC);
}

RS232C::RS232C(string deviceName)
: fDeviceName(deviceName)
{
fFileDescriptor = -1;
SetDefault();
}

myClassはRS232Cというclassを継承してます。


773:767
05/08/28 02:55:59
先のSetDefault()の内部は、
void RS232C::SetDefault()
{
SetDelimiter(WIN);
fInputSpeed = B9600;
fOutputSpeed = B9600;
fSleep = 0;
struct termios tmp;
fOptions = tmp;
UnsetIflag(INPCK | ISTRIP);
UnsetIflag(IXON | IXOFF | IXANY);
UnsetOflag(OPOST);
SetCflag(CLOCAL | CREAD);
UnsetCflag(PARENB);
UnsetCflag(CSIZE);
SetCflag(CS8);
UnsetCflag(CSTOPB);
UnsetCflag(CRTSCTS);
UnsetLflag(ICANON | ECHO | ECHOE | ISIG);
SetCc(VMIN, 0);
SetCc(VTIME, 10);
SetInputSpeed(fInputSpeed);
SetOutputSpeed(fOutputSpeed);
SetTermios(fOptions);
}
です。
delimiterとbaud rateは後で変更しています。

774:767
05/08/28 02:58:38
続き

string RS232C::Read() const
{
string line = "";
char buf[100];
while(1){
int size = read(fFileDescriptor, &buf, 100);
if(0<size && size <=100){
line += buf;
} else {
break;
} // if
} // while

return line;
}

Read()はこんなです。
自分の通常使用では100文字を超えるようなread()の結果はないので、
100で一旦区切ってます。

775:767
05/08/28 03:05:22
以上ですが、
問題があるとすればread()の使い方か、
もしくは>>773の設定内容でしょうか。

SetCflag(CLOCAL | CREAD);
などは、
void SetCflag (int flag){ fOptions.c_cflag |= flag;}
などという関数を呼んでいます。

ちなみにcode内でfで始まっている変数はmember変数です。

長いですが、よろしくお願いします。
職業柄、宇宙の神秘の解明に繋げます。

776:デフォルトの名無しさん
05/08/28 03:25:55
動作中に stty -a -F /dev/usb/ttyUSB0 した結果見して。

777:767
05/08/28 03:42:01
>>776
speed 115200 baud; rows 0; columns 0; line = 244;
intr = t; quit = M-r; erase = M-~; kill = M-^¥; eof = R; eol = I; eol2 = ^M;
start = s; stop = M-r; susp = M-~; rprnt = L; werase = ^C; lnext = M-<;
flush = M-^]; min = 0; time = 10;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel
-opost -olcuc ocrnl onlcr -onocr -onlret ofill -ofdel nl0 cr1 tab0 bs1 vt0 ff1
-isig -icanon iexten -echo -echoe echok echonl -noflsh -xcase tostop -echoprt
-echoctl -echoke

です。

778:767
05/08/28 03:45:58
あ、以下の内容を書き忘れていました。

void RS232C::Open()
{
fFileDescriptor = open(fDeviceName.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
fcntl(fFileDescriptor, F_SETFL, 0);
SetTermios(fOptions);
}

779:デフォルトの名無しさん
05/08/28 05:14:30
>>777
特殊文字の設定がでたらめだな。

780:デフォルトの名無しさん
05/08/28 06:40:16
本題と関係ないだろうけど
if(0<size && size <=100){でいいの?

781:780
05/08/28 06:40:50
あ、いいんだゴメン

782:デフォルトの名無しさん
05/08/28 10:22:27
>>777
なんかぐちゃぐちゃだな。cfmakeraw で raw モードにしてみれ。

783:767
05/08/28 12:17:58
>>782

>>773
fOptions = tmp;
の後ろに
cfmakeraw(&fOptions);
を追加しました。その状態で、
>>776を打つと、
speed 115200 baud; rows 0; columns 0; line = 180;
intr = M; quit = M-q; erase = M-~; kill = M-^¥; eof = r; eol = I; eol2 = ^M;
start = L; stop = M-q; susp = M-~; rprnt = L; werase = ^C; lnext = M-<;
flush = M-^]; min = 0; time = 10;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel
-opost -olcuc ocrnl onlcr -onocr -onlret ofill -ofdel nl0 cr1 tab0 bs1 vt0 ff1
-isig -icanon -iexten -echo -echoe echok -echonl -noflsh -xcase tostop -echoprt
-echoctl -echoke
となります。まだ実行速度は変わりません。

784:デフォルトの名無しさん
05/08/28 15:20:55
>>783
だめか。
というかどうやって計測してる?単にreadがブロックしてるだけじゃないよな。

それでも遅いなら、linuxのデバドラあたりの問題な気がする。つづきは犬板かなぁ。

785:デフォルトの名無しさん
05/08/28 18:00:16
>>784
>単にreadがブロックしてるだけじゃないよな。
open()でO_NDELAYしてるみたいだけど..

786:デフォルトの名無しさん
05/08/28 18:44:12
linux-2.4のFTDIなシリアルドライバはクソなので、
そういうものだと思ってあきらめた方がいいかもしれない。

遅いだけならともかく、負荷をかけるとデータ取りこぼして使いものにならん。


787:デフォルトの名無しさん
05/08/28 19:20:59
2.6系の最新の物にすべし。
メジャーなカーネルハカーは、もはや2.4系など弄って無い

788:デフォルトの名無しさん
05/08/29 01:48:24
2.6からディバイスドライバがコンパイラだけで生成できなくなってめんどくさい


789:デフォルトの名無しさん
05/08/29 02:22:06
USBでない普通のシリアルで試してみると
問題が切り分けられたりするんではないだろうか。


790:デフォルトの名無しさん
05/08/29 13:46:47
>>788
めんどくさいなら最初からやるな

791:デフォルトの名無しさん
05/08/29 14:31:40
はいはいウザスウザス

792:767
05/08/29 15:02:57
ご回答ありがとうございます。

>>786-787
uname -rの結果は、
2.6.5-1.358smp
です。FC 2を使っています。

>>784
>readがブロックしてる
これはどういう意味でしょうか。

793:デフォルトの名無しさん
05/08/29 19:42:42
自分で調べるっという選択肢は無いのか?

794:デフォルトの名無しさん
05/08/30 13:38:35
一から十まで用意してもらうのが当たり前な世代なんじゃないの。


795:デフォルトの名無しさん
05/09/01 12:52:13
おい、実行ウファルのパスはどーやって調べるんだよ

796:デフォルトの名無しさん
05/09/01 13:02:56
うふぁる?

797:デフォルトの名無しさん
05/09/01 13:51:32
Linuxだったらreadlink("/proc/self/exe", buf, bufsize)


798:デフォルトの名無しさん
05/09/01 21:11:53
whereis ?

799:デフォルトの名無しさん
05/09/02 02:14:04
実行ウファルは既に消されてウファルシステムから見えなくなっている可能性もあるわけだが


800:デフォルトの名無しさん
05/09/02 08:04:20
そこまで責任もてん

801:デフォルトの名無しさん
05/09/02 16:30:20
ps で出ている実行ウファルの場所を調べる方法ある?
httpd とかさぁ。

802:デフォルトの名無しさん
05/09/02 16:33:09
>>801
プロセスって実行ファイルに結びついてるもんなの?

803:デフォルトの名無しさん
05/09/02 16:53:34
>>802
forkしたプロセスを実行ファイルと結びついてると解釈できるかどうかによるな

804:デフォルトの名無しさん
05/09/02 16:55:54
料理とレシピ

805:デフォルトの名無しさん
05/09/02 17:02:44
クラスとインスタンスとか

806:デフォルトの名無しさん
05/09/02 20:43:59
pid 1の実行ウファルって何?

807:デフォルトの名無しさん
05/09/02 20:48:40
うちのに限って言えば /sbin/init

808:デフォルトの名無しさん
05/09/02 23:44:58
実行した後すぐ削除って出来る?
なんか怒られるときがあるけど

URLリンク(58.156.48.133)

809:デフォルトの名無しさん
05/09/03 00:53:10
↑ エロ注意

810:デフォルトの名無しさん
05/09/03 01:54:07
>>808
Cygwinでなければunlinkによる削除はできる
上書きはEBUSYエラーでできない

811:デフォルトの名無しさん
05/09/03 01:57:59
>>810は嘘

812:デフォルトの名無しさん
05/09/03 03:36:31
>>808
削除(unlink)はできる。unlinkしてもディレクトリからウファル実体への
参照が消えるだけで、実行中プロセスがウファルを参照しているので、
ウファル実体はまだウファルシステムからは消えない。
実行プロセスが終了して他にそのウファルを参照しているプロセスも
なくなったら、ウファル実体は参照数ゼロになるので消滅する。

cp等による上書き(単にオープンして書き込む)はウファル実体を
変更することになるので、エラーになる。
(OSによってはエラーにならないが実行中のプロセスに致命的な結果を生じる)

ウファルをインストールするときにcpでなくinstallコマンドを使うのは
一つにはこのためで、まずunlinkしてからウファルを作成するようになっている。



813:デフォルトの名無しさん
05/09/03 08:51:21
ウファルてなに?


814:デフォルトの名無しさん
05/09/03 09:15:56
ウファル の検索結果 約 458 件中 1 - 10 件目 (0.39 秒)

白髪染めクリームらしい

815:デフォルトの名無しさん
05/09/03 09:39:09
あるテキストファイルを複数のプログラムから同時にアクセスする可能性があるのですが、ファイルロックの方法を教えてくだされ。
また、書き込みブロックされた際に、ロックが解放されるまで待つようにするにはどのようにするのがよいでしょうか?

816:デフォルトの名無しさん
05/09/03 09:40:29
flock

817:デフォルトの名無しさん
05/09/03 09:50:47
>>816
よりによってflockかよ…

lockf(3)かfctrl(2)を。
fctrlはF_GETLK, F_SETLK, F_SETLKW

818:デフォルトの名無しさん
05/09/03 09:54:06
いっそファイル名を変えてしまえ。

819:デフォルトの名無しさん
05/09/03 10:22:14
fctrl(笑)

820:デフォルトの名無しさん
05/09/03 10:31:28
man 笑 fctrl

821:デフォルトの名無しさん
05/09/03 12:00:02
fcuk

822:デフォルトの名無しさん
05/09/03 13:49:04
>>812
サンクスコ

実行中でのウファルの振る舞いが完全理解できたよ

823:デフォルトの名無しさん
05/09/03 14:18:22
完全に理解(笑)

824:デフォルトの名無しさん
05/09/03 14:24:28
もはや(w)はなんとも思わなくなったけど、
逆に(笑)がけっこうムカツクことに気づいた。
時代は変わったということだな。

825:デフォルトの名無しさん
05/09/03 14:36:50
そういえばpsで見える実行ウファルのパスはどうやって調べてるんだ?
argv[0]なの?

826:デフォルトの名無しさん
05/09/03 14:38:43
>>817
そうは言うが、ではしつこく残ってるflockの存在意義って何よ?

827:デフォルトの名無しさん
05/09/03 14:41:58
>>826
backward compatiblityってやつじゃないの。

828:デフォルトの名無しさん
05/09/03 18:54:51
>>826
flock(2)は*BSDで独自の発展をとげているし、(4.2BSDの頃から仕様が変わっている)
POSIX等で標準化されてないから、OSを超えたポータビリティはないと思ってくれ。
ロックしたファイルをclose(2)したり、dup(2)したり、
プロセスが終了したり、fork(2)したり、execve(2)したりした時の振る舞い。

FreeBSDのマニュアルは、POSIX fcntl(2)のロックの意味を、
stupidと言っているが、標準であることの意味は大きい。
問題とされているところを、回避するような実装を行えばいいだけだから。
URLリンク(www.freebsd.org)

FreeBSDはflock(2)がefficientであると言っているから、
#ifdef FreeBSD
#error "....."
#endif
なソースでflock(2)するのは、いい場合もあるんじゃないかと思うが。

829:デフォルトの名無しさん
05/09/04 00:11:21
fcntlの振る舞いは本当にstupidだと思う

830:デフォルトの名無しさん
05/09/04 01:18:15
なにそのunix会話

831:デフォルトの名無しさん
05/09/04 08:41:32
flock()はBSD系で、lockf()/fcntl()はSysV系
両方使える人は好きなほう使えばいいじゃん。ってことっしょ

832:デフォルトの名無しさん
05/09/04 11:20:29
BSDって、もしかしてUNIXの足引っ張ってる?

833:デフォルトの名無しさん
05/09/04 12:20:24
はい

834:デフォルトの名無しさん
05/09/04 19:57:15
はいじゃないが

835:デフォルトの名無しさん
05/09/05 10:53:20
>>832
唯我独尊&孤立無援状態

836:デフォルトの名無しさん
05/09/05 15:07:32
自分自身のnice値の取得方法を教えてください

837:デフォルトの名無しさん
05/09/05 15:56:29
getrusage(RUSAGE_SELF, &ru)

838:デフォルトの名無しさん
05/09/06 07:00:57
URLリンク(www.linux.or.jp)
これを見てみたのですが、どれがnice値に相当するのでしょうか?よろしくお願いします。

839:デフォルトの名無しさん
05/09/06 07:30:26
人に教えれるほど知識無いけど
ググったらgetpriorityが見つかったけど違う?

840:デフォルトの名無しさん
05/09/06 08:35:10
>>837は間違い。
>>839は正しい。

841:デフォルトの名無しさん
05/09/06 18:36:04
調べしないででスミマセンが、ワードがまったく検討がつかないのでお願いします。。

普通Windowsアプリケーションは、
Win32APIやDirectXのAPI郡などのMSが提供している関数を用いて作ってるのですが。
主にFedoraCoreやVineではこれらと同じような、もしくは頑張れば表現可能なAPI郡は存在するのでしょうか?



842:デフォルトの名無しさん
05/09/06 18:39:24
てかすぐ出てきちゃいましたΛllΛ

Gtk+なるSDKがあるのですね、、
ちと勉強してきます

843:デフォルトの名無しさん
05/09/06 20:23:35
>>842

WindowsっていうOSは、ウィンドウシステムも含んでリリースされています。
でも、一般的にUNIX系のOSは、ウィンドウシステムは含まれていません。

使いたい人が使いたいウィンドウシステムを使えばいいという考え方です。
(とは言え、X以外のウィンドウシステムってあんまり聞きませんが。)

ゆえに、ウィンドウシステムに対するAPIも1つではなく、さまざまな種類が
存在しています。(XというウィンドウシステムのAPI:ツールキットも様々な
種類があります。)
Gtk+もその一つにすぎません。

と言うことを念頭においておかないと、せっかく覚えたのに、数年後には
だれもつかっていない過去の遺物となってしまうかも知れません。


844:デフォルトの名無しさん
05/09/06 20:37:07
GTK+はダメだよ
Xtを使うのが普通

845:デフォルトの名無しさん
05/09/06 21:03:19
gtk+で問題なし。ただ

> Win32APIやDirectXのAPI群

に相当するものではないけど。

846:デフォルトの名無しさん
05/09/06 21:21:33
>>821
X自体がセキュリティもアクセラレータもなんもない地雷環境なので、
世にある窓マネージャは例外なくスナップショットの画像で誤魔化してます。
Gtk+もその1つで、実際の動作を見るとその醜さに驚かされるでしょう。

>>844
UNIXでGUIなんてダメだよ
Windowsを使うのが普通

847:デフォルトの名無しさん
05/09/06 21:27:53
さくら、それを言っちゃあお仕舞いよ。

848:デフォルトの名無しさん
05/09/06 21:44:10
GNUStep最強

849:デフォルトの名無しさん
05/09/06 21:57:05
>>846
DRI じゃダメなのか?

850:デフォルトの名無しさん
05/09/06 21:58:29
>>846
> X自体がセキュリティもアクセラレータもなんもない地雷環境なので、

無知蒙昧だな。


851:デフォルトの名無しさん
05/09/06 22:25:24
そこでlg3dの出番ですよ。

852:デフォルトの名無しさん
05/09/06 22:39:55
Xのセキュリティはxhost, xauthがあるし、
アクセラレーションなら MIT SHM拡張があるし

853:デフォルトの名無しさん
05/09/06 22:46:51
xhostwwwwwwww


854:デフォルトの名無しさん
05/09/06 22:53:13
>>852
acceleration つったら普通は h/w acceleration じゃない?
↓ここが参考になるかも。

Xの描画が一番速いグラフィックカードってどれ?
スレリンク(linux板)

855:デフォルトの名無しさん
05/09/07 01:54:38
詳解UNIXプログラミングって本買ったんですけど、
C言語で組むのとどう違うのか、本質が理解できません。
目の覚めるようなご教授をお願いします。

なるほどー、というようなやつで。

856:デフォルトの名無しさん
05/09/07 02:00:03
Cしたい

857:デフォルトの名無しさん
05/09/07 02:09:51
>>855
おまえには無理

858:デフォルトの名無しさん
05/09/07 02:12:34
そういう受け答えは飽きたので、レスするのは本当の答えを知っている人だけで結構ですから。

859:デフォルトの名無しさん
05/09/07 02:15:09
質問の意味が理解できないからそんな人はいないかと(笑)

860:デフォルトの名無しさん
05/09/07 02:41:17
C言語云々は ANSI C のみでという事か?
自分の居場所を説明出来ないヤツに道案内するのはしんどいからパスだな。

861:マイク ◆yrBrqfF1Ew
05/09/07 02:41:37
ハードウェアは変更しづらいから
遅いけど変更しやすいソフトウェアがあるはずだが
そのソフトウェアに合わせてハードを選ぶのは本末転倒だよな?

862:デフォルトの名無しさん
05/09/07 03:38:01
>>855
違わないと何か困るの?

>>861
日本語不自由なんだね。ちゃんと勉強しないと高校行けないよ。

863:デフォルトの名無しさん
05/09/07 03:46:25
ファイルがすでに存在するかどうかを確認するにはどのようにしたらよいのでしょうか?

864:デフォルトの名無しさん
05/09/07 03:50:35
目視で確認すればいいだけじゃん

865:デフォルトの名無しさん
05/09/07 03:54:31
ワロタ

866:デフォルトの名無しさん
05/09/07 04:06:25
目視は疲れるからなあ。俺なら人に訊くね。

867:デフォルトの名無しさん
05/09/07 04:16:29
プログラムからコマンド例えばlsを発行してその結果をプログラムに取り込む方法を教えてくだすれ

868:マイク ◆yrBrqfF1Ew
05/09/07 04:26:50
よく知らんがパイプとか標準出力等をdupったりすんじゃないのか。

869:デフォルトの名無しさん
05/09/07 04:27:55
よくしらないのにレスするな

870:デフォルトの名無しさん
05/09/07 04:28:26
system とか popen とか

871:デフォルトの名無しさん
05/09/07 04:51:03
APUEをちゃんと嫁

872:デフォルトの名無しさん
05/09/07 04:58:20
open(2)してみれば分かる。
なければ、エラーか、新規作成かは第二引数で選ぶことができる。


873:デフォルトの名無しさん
05/09/07 11:46:11
>>867
よくしらんが、GUIならコピー&ペーストという手がある。

874:デフォルトの名無しさん
05/09/07 12:07:11
>>873
どんなプログラム書けばいいんですか?

875:デフォルトの名無しさん
05/09/07 12:11:53
teratermでログインすりゃログ取れるでしょ
それと同じようにすればいい

876:デフォルトの名無しさん
05/09/07 12:17:53
>>875
詳しく

877:デフォルトの名無しさん
05/09/07 12:38:00
結論:>>863 に見合った方法など ない

878:デフォルトの名無しさん
05/09/07 13:12:09
>>877
いや、>>872だから。

>>867は、>>870のpopen(3)。


879:デフォルトの名無しさん
05/09/07 13:44:51
UNIXはまともなファイラーがない時点でクライアントとして終わってる
emacs使ってるキモイ奴は困らないだろうけど
fdcloneの入ってない環境はクソ

880:デフォルトの名無しさん
05/09/07 13:45:57
>>879
ワラタ

881:デフォルトの名無しさん
05/09/07 13:47:03
emacs持ち出すまでもなく、お好きなシェルでええやん(笑)

882:デフォルトの名無しさん
05/09/07 13:52:20
>>881
おまえ、タイプ量考えろよ
おれはファイル選択はカーソルキー以外使いたくないの

883:デフォルトの名無しさん
05/09/07 13:57:23
UNIXは唯一telnetとかでリモート操作できるのは評価してやるが
GUIはクソ
コピペもまともにできないXサーバーなんて入れるかっつーの
おれはteratermで十分
けどCUIのファイラーがfdcloneしかないのはマジでクソ

884:デフォルトの名無しさん
05/09/07 13:58:47
>>883
ファイラって便利?

885:デフォルトの名無しさん
05/09/07 13:59:03
シェルはDOSよりずっとまともなワイルドカード使えるし
正規表現つかえるツールもいっぱいあるやん。
肌に合わないなら無理してUnix使うなよ(笑)

886:デフォルトの名無しさん
05/09/07 14:02:00
PIP.COMがないと話にならん。
今でも8インチ片単に入れて持ち歩いている。

887:デフォルトの名無しさん
05/09/07 14:03:39
海胆糞板逝け

888:デフォルトの名無しさん
05/09/07 14:06:09
うむ、PIPはけっこう良かった。

889:デフォルトの名無しさん
05/09/07 18:42:10
>>882
指の本数足りない人は大変だね

890:デフォルトの名無しさん
05/09/07 21:23:50
じゃぁ俺、秀吉。

891:デフォルトの名無しさん
05/09/07 21:35:07
>>890
大杉。

892:デフォルトの名無しさん
05/09/08 11:18:54
vimのようにスクリーン全体を書き変えるようなプログラムの画面出力を得るにはどうしたらよいのでしょうか?

893:デフォルトの名無しさん
05/09/08 11:52:01
vram上のデータをファイルに書きだせばいい。

894:デフォルトの名無しさん
05/09/08 11:55:49
>>892
・画面のイメージが欲しい。
・画面全体を文字列として取得したい。
・vimの出力するコントロールシーケンスを取得した。
どれ?

895:デフォルトの名無しさん
05/09/08 12:17:45
>>894
二番目か三番目です。そのへんも良くわからないもので…

896:デフォルトの名無しさん
05/09/08 12:20:00
>>894
> ・画面全体を文字列として取得したい。

端末エミュレータでcut&paste

> ・vimの出力するコントロールシーケンスを取得した。

script(1)


897:デフォルトの名無しさん
05/09/08 12:21:02
あれ? 自分の書いたプログラムで、
自分の書いた画面を知りたいと言うこと?
curses(3)を使って画面を書けばあ?

898:デフォルトの名無しさん
05/09/08 12:24:47
>>896
おお、ありがとうございます!scriptを使ってみます。

899:892=895=898
05/09/08 12:27:09
>>893
vramって何か分かりません…
>>897
自分の書いたプログラムから他のプログラムを呼びだして、その画面出力が得られないかと思ったのですが…。

900:デフォルトの名無しさん
05/09/08 12:30:59
>>899
scriptはそういう使い方じゃないなあ。
cursesの方が良さそう。>>687>>683


901:892
05/09/08 12:40:48
>>900
そうなんですか。。cursesで調べてみます。ありがとうございます!

902:デフォルトの名無しさん
05/09/08 13:13:26
>>901
騙されるなキミが調べるべきものは pty だ。

903:デフォルトの名無しさん
05/09/10 12:28:45
あるプロセスが動いているかどうかを調べるための関数を教えてください。

904:デフォルトの名無しさん
05/09/10 12:31:03
ps

905:デフォルトの名無しさん
05/09/10 12:57:56
>>903
URLリンク(www.adl.nii.ac.jp)

906:デフォルトの名無しさん
05/09/10 14:35:12
困りましたねぇ。

907:デフォルトの名無しさん
05/09/10 14:42:55
なんだこの直訳なページは!!

908:デフォルトの名無しさん
05/09/10 14:51:26
>>907
>>3

909:名無しさん@そうだ選挙に行こう
05/09/10 21:54:37
>>907
書籍じゃないんだから訳が気に入らないなら自分も訳せば?


910:名無しさん@そうだ選挙に行こう
05/09/10 22:45:09
メモリが'read'になることはできませんでした。

911:名無しさん
05/09/11 08:40:39
>>892
vim abc.txt |tee vim.log
でどう?

912:911
05/09/11 09:01:00
あるいは、vim のコマンドを使って適当な行を切り出す。
vim -c ":1,25w! onepage.txt" orig.txt


913:名無しさん@そうだ選挙に行こう
05/09/11 19:05:01
オクトデュアル ってなんでしょうか

914:名無しさん@そうだ選挙に行こう
05/09/11 19:10:03
ググったらすごかった

915:デフォルトの名無しさん
05/09/12 09:54:37
Emacsやviより統合開発環境を使った方がわかり易くないでしょうか?



916:デフォルトの名無しさん
05/09/12 09:58:27
Σ(´д`) えっ このすれは大学生、院生、趣味人 しかいないって本当ですか?

917:デフォルトの名無しさん
05/09/12 10:15:59
本当です

918:デフォルトの名無しさん
05/09/12 14:10:34
趣味人ってのが範囲広すぎるな。。。
(一応)社会人の俺もあてはまってしまうではないか。

919:デフォルトの名無しさん
05/09/12 14:18:35
社会人に(一応)と付ける意味がわからん。
NEETってこと?

920:デフォルトの名無しさん
05/09/12 15:04:12
>>913-
スレ違い

921:デフォルトの名無しさん
05/09/12 15:36:29
>>1-
板違い

922:名無しさん
05/09/16 19:59:21
Advanced Programming in the Unix Environment
だけど、
amazon.com から直接買うのと
amazon.co.jp から買うのとどっちが安い?

923:デフォルトの名無しさん
05/09/16 20:21:59
しらべりゃば?

924:名無しさん
05/09/16 20:52:18
調べた。
amazon.com(古本) + 送料9.79ドル + 日本の消費税 = 7848円  (3週間以上かかる?)
amazon.co.jp(新本) + 送料無料  +  (税込み)    = 8734円  (数日)

925:デフォルトの名無しさん
05/09/17 08:41:08
ついでに買いたい洋書の1冊や2冊ないのか?


926:名無しさん
05/09/17 13:26:08
古本混ぜると1パックにまとまらんのよ

927:デフォルトの名無しさん
05/09/17 13:46:49
自分なら値段が少し高くついても、面倒くさくないほうを選ぶ。

928:デフォルトの名無しさん
05/09/17 18:00:49
おまいら、MINIXやったか?

929:デフォルトの名無しさん
05/09/17 18:03:52
けっ、

930:名無しさん
05/09/17 20:19:39
Advanced Programming in the Unix Environment
第1版   著者Stevens(1999年に死去)       邦訳 『詳解UNIXプログラミング』
第2版   Pagoによる改定版(2005年)        (いずれ第2版の邦訳も出るだろう)

Linuxについての記述を読んでみたいので買うか。


931:デフォルトの名無しさん
05/09/17 23:59:20
カーネルの勉強したいけど、どのへんがおすすめ?
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)

932:デフォルトの名無しさん
05/09/18 08:01:52
FreeBSDじゃダメかね? OS問わないなら、一番読みやすいと思うが。
URLリンク(www.mckusick.com)
具体的なんじゃなくて、概論だったらこっちがお勧め。
URLリンク(www.amazon.com)

タンネンバウムはMINIX(とamoeba)で有名になったけれど、著作は激しくイマイチ。

933:デフォルトの名無しさん
05/09/18 12:16:16
今更FreeBSDのkernelなんか勉強して意味あるのか
LinuxかOpenSolarisだろ

934:デフォルトの名無しさん
05/09/18 12:50:49
Solarisだと、↓だな。

Solarisインターナル
URLリンク(www.amazon.co.jp)

935:デフォルトの名無しさん
05/09/18 12:52:00
>>933
基本的な技法はそれほど変わらないよ。
>>931のような人なら。

Linuxはいい本あるかね?
構造がころころ変わるしなあ。

936:デフォルトの名無しさん
05/09/18 15:34:39
kernel 2.4以前と2.6以降の違いって言えるか?

おれは、無理。

937:名無しさん
05/09/18 21:25:27
つ URLリンク(www-6.ibm.com)

938:デフォルトの名無しさん
05/09/18 21:28:20
↑ブラクラ

939:デフォルトの名無しさん
05/09/18 23:36:06
さすがにdeveloperWorksをブラクラって言っても誰も引っかからないと思う

940:デフォルトの名無しさん
05/09/19 11:43:21
おれはURLだけ張って澄まし顔の奴が許せない

941:デフォルトの名無しさん
05/09/19 13:04:58
なぐっていいよ

942:デフォルトの名無しさん
05/09/19 14:03:15
仕事上Linuxカーネルの仕様変更は0.0.0.1単位で把握してるけど
こういうのって御当地カップラーメンのバージョンいくつ覚えてるか
とかいうのと大差無いどうでもいい知識なんだよな。面白いけど。

943:デフォルトの名無しさん
05/09/19 15:19:54
ログファイルの再オープン(?)について質問です。

openlog("test", LOG_NDELAY|LOG_PID, 0, LOG_LOCAL2);
のようにオープンして出力しているログファイルを、SIGHUP受信時に
再オープンしたいのですが、
signal(SIGHUP,sighup_handler);
...
void sighup_handler(int signal)
{
closelog();
openlog("test", LOG_NDELAY|LOG_PID, 0, LOG_LOCAL2);
}

では、処理以降にログが記録されなくなってしまいました。
GoogleやKodersなどで調べてみてもこれというものが見つからなかったのですが
正しい処理の書き方はどのようにすればいいのでしょうか?

944:943
05/09/19 15:26:41
補足です。
最終的にログローテートを正常に行いたいわけですが、/etc/syslog.conf に
local2.*/var/log/test.log
とした上で、/etc/logrotate.d/syslog に
/var/log/test.log {
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

と書いたのですが、ローテート後のログファイルには何も出力されませんでした。
それでプログラム側でもSIGHUPで何かしないとだめなのかと思ったのですが。。。

945:デフォルトの名無しさん
05/09/19 15:48:34
>>943
やり方はだいたいOKだから
closelogとopenlogを疑うしかないな
openlog内のファイルの開き方が特に心配だ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5394日前に更新/207 KB
担当:undef