Linuxプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/09/02 20:31ID:8eEfRqZ20720login:Penguin
03/07/23 19:17ID:6cwqB+RT(゚∀゚)サンクスコ
0721login:Penguin
03/07/23 19:18ID:cPeNPJaK「いいの」といってるだろ。
>>720
諦めてvi, emacsに慣れるかcuiアプリならsamba経由でvcで開発デバッグするのも有り。
C/C++でVC並に使いやすいIDEはないよ。
つかKylix Open Editionじゃ駄目なのか?
0722login:Penguin
03/07/23 19:44ID:CrZUc/cgこれから良くなるんでないの?
0723718
03/07/23 23:01ID:qGKxaJYNそれぞれ見てみましたが一長一短って感じですね。
取りあえず将来性も考えWideStudio使ってみようかとおもいます。
Kylix Open Editionも良いけどGPLソフトしか作れないってのはきっついなー。
0724login:Penguin
03/07/24 10:51ID:fOKry8Mc> フリーの統合開発環境でいいのないすか?
> どうもviじゃいまいちだし。
> できればVC++みたくで日本語環境で使える奴。
> キリクス高杉
VC++使えばいいじゃん。もう(買って)持ってるんだろ?
今更フリーにはしるこたぁねえよ
0725707
03/07/24 23:23ID:m74KDjKB漏れはWindows用のゲームのサーバとしてLinuxでプログラム組んでるが、
Windows上でLinuxと同じ動作をするぷプログラムをまず組んで、
あらかたバグがとれたらLinuxへ移植。もっと効率のいい方法無いかな?
0726login:Penguin
03/07/25 02:14ID:V77hoGnP開発効率が良ければいいんじゃないかな
開発環境ってもただの道具だし、
手に馴染んだものを使うのが
結局一番いいということもあるし。
0727login:Penguin
03/07/25 11:23ID:azZp68HE最近真面目に勉強始めたんですが・・・
Cでプログラム作って、中の動作を一部シェルやコマンドに任せたりなんてどーやってやるんですか?
徹頭徹尾、CならC、シェルならシェルで書かないとイカンですか?
0728login:Penguin
03/07/25 11:30ID:29zDwjlusystem, exec, fork
を参考にしてください。
0729login:Penguin
03/07/25 11:30ID:29zDwjlu0730login:Penguin
03/07/25 12:07ID:azZp68HEありがとうございます
0731login:Penguin
03/07/26 04:56ID:aiFKdJLY0732login:Penguin
03/07/26 05:17ID:J0HMlTl0"統合環境"だろ。"開発"は余計。
0733login:Penguin
03/07/27 07:01ID:6YULTMa40734login:Penguin
03/07/27 14:59ID:dGC6KQ/nこのスレでの発言であればあってるから問題ない
他のスレで「開発」なんて付けて呼んだらイカンけどな。
0735login:Penguin
03/07/28 12:55ID:YIr5Dzm40736login:Penguin
03/07/28 18:40ID:Fse58Rnuスレ名:Linuxプログラミング
板 名:Linux@2ちゃんねる
投稿者:
メール:sage
投稿日:2003/07/28 18:38:34
本 文:
emacsって、CUI環境で日本語入力できる?
オレRedhat8.0とTurboLinux使ってみたんだけど、
両方とも起動直後のコンソールではshift+spaceでFepが立ち上がらん。
x-window上でktermを起動させて、その上でemacsを起動させればFEPも使えるんだけど、
重い・・・。
0737login:Penguin
03/07/28 18:41ID:Fse58Rnu0738login:Penguin
03/07/28 19:40ID:3aOZaK5v0739login:Penguin
03/07/29 01:10ID:Ft2LMD2u激しくスレ違いだが一応答えておく・・・
emacsのFEP(IME)は、CTRL+o もしくは、 CTRL+\ です。
キーバインドの設定によって変わってますが、大抵はどちらか。
# emacsが起動するホストでcannaやwnnやATOKなどが起動している必要がある
0740login:Penguin
03/07/30 17:45ID:yKm3BaiUgrepしたら
unistd.h:#define STDIN_FILENO 0
と出たんだけど、これ使っていいの?
0741login:Penguin
03/07/30 17:55ID:Gdoqv3Kj0742login:Penguin
03/07/31 03:19ID:k0B+t1iH0743727
03/08/01 11:58ID:FcJoCnjbCの中でコマンドを使うにはsystemなどを、というコトでしたが、
例えばprintf系のように%dとか%sとかって使うコトは出来るのでしょうか?
systemは実際駄目でしたが。
0744login:Penguin
03/08/01 12:05ID:YzTLfBOMそのためのsprintf
全然Linux固有の話じゃないな。
あと、外部の入力をsystemに食わせる時はちゃんとチェックしとけよ。
穴になるぞ。
0745login:Penguin
03/08/01 13:22ID:3Dz1soT0そういう関数は無いから自前で作る。たとえば
int systemf(char* fmt, ...) {
va_list vl;
char buf[4096]; // 長さは適当。
va_start(vl, fmt);
vsprintf(buf, fmt, vl);
va_end(vl);
return system(buf);
}
もちろん穴には気をつけてね。
0746hidehiro
03/08/01 15:25ID:FaQAPlZwコマンドプロンプトからコマンドを実行した時に
標準出力へ出力される文字数を取得する環境変数
かなにかはあるのでしょうか?
0747login:Penguin
03/08/01 15:29ID:3Dz1soT0何がしたいの??
なんか
ls | wc -c
とかいうことじゃないよな?
0748ぼるじょあ ◆yBEncckFOU
03/08/02 04:56ID:GfRe8vK7ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0749login:Penguin
03/08/02 10:14ID:2rmp9gin0750login:Penguin
03/08/03 20:31ID:q7iiqNK4ターミナルの横幅では?
0751login:Penguin
03/08/04 03:03ID:e3p0qvvk0752login:Penguin
03/08/08 11:52ID:mg5o8ebS0753login:Penguin
03/08/09 08:18ID:23zZMeDy0754login:Penguin
03/08/12 11:33ID:4MGXav2e0755login:Penguin
03/08/14 00:36ID:qFFLWU8RIPアドレスから名前に変換するとき、今一番トレンディな方法は
いったいなんでしょうか? getnameinfo を使うのがベストなの?
0756login:Penguin
03/08/14 02:26ID:gJhrJeKXgethostbyaddr
かな。
$ man gethostbyaddr
で関連関数が出てくるよ
0757login:Penguin
03/08/14 19:00ID:qFFLWU8R動作中、ずっとlisten()してるソケットを作りました。
このプログラムが動作中は問題ないんですが
Ctrl+C等で不用意に止めて、もう一度動かすと
bindでエラー(EADDRINUSE :Address already in use)
となって待ち受け出来なくなります。
このときnetstatでポートを見ると TIME_WAIT とあるので
そのポートが自然に消滅するのを待てばいいのですが
こんなことをしなくても強制的に再利用したいのですが
どうしたらいいでしょうか?
setsockoptでなんか適当に設定するの?SO_REUSEADDR?
0758login:Penguin
03/08/14 20:03ID:imXzk7paそうそれ。
0759login:Penguin
03/08/14 20:54ID:OZhN5Fs90760login:Penguin
03/08/14 20:56ID:imXzk7pasignalで処理しても
> このときnetstatでポートを見ると TIME_WAIT とあるので
この状態は防げない。
0761login:Penguin
03/08/14 23:57ID:EZZe4dzOint flag = 1;
setsockopt(fdsocket, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));
fdsocketはsocket関数で取得したsocket descriptor。
0762login:Penguin
03/08/15 15:07ID:VuCLTiPS(゚∀゚)サンクスコ
うまく動かんなーと思ってたらflag=1を忘れてたぜエヘヘ
0763山崎 渉
03/08/15 22:20ID:dil3w4kp│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0764login:Penguin
03/08/16 00:11ID:5i+gfiwt0765login:Penguin
03/08/18 01:17ID:xPxKgdATchar buf[256];
getaddrinfo( "hostname", 0,0, &hoge );
inet_ntop( AF_INET, &info->ai_addr, buf, 256);
printf( "%s\n", buf );
こンな感じで名前からIPを引きたいンだけど、うまく動かない。
inet_ntopの使い方、どッか間違ッてる?
0766login:Penguin
03/08/18 01:21ID:wDvg6Ni/printf("%d.%d.%d.%d\n", buf[0], buf[1], buf[2], buf[3]);
じゃないのか?
0767766
03/08/18 01:48ID:wDvg6Ni/0768766
03/08/18 02:08ID:wDvg6Ni/struct addrinfo *ai;
struct sockaddr_in *sin;
char buf[INET_ADDRSTRLEN];
getaddrinfo("hostname", 0, 0, &ai);
sin = (sockaddr_in*)ai->ai_addr;
inet_ntop(AF_INET, &sin->sin_addr, buf, INET_ADDRSTRLEN);
printf("%s\n", buf);
こうしないとだめっぽい。
addrinfoのメンバーai_addrをsockaddr_inにキャストしてメンバーsin_addrをinet_ntopに渡す
0769login:Penguin
03/08/18 02:50ID:X8KH6Enzちなみに、終了時には
freeaddrinfo(ai);
を処理するべきかな。
0770766
03/08/18 03:06ID:wDvg6Ni/一回しか実行しないなら、別にやらなくて良いよ。
何度もgetaddrinfoのコールを繰り返す可能性を考えるなら、
freeaddrinfoを処理することを考慮すべき。
解る人には解る言い方だと、
シングルトンなものの場合は、わざわざfreeせんでよろしい。
0771login:Penguin
03/08/19 03:35ID:LWYDhLjX(゚∀゚)サンクスコ
やっぱヘッダをちゃんと見なきゃダメだね〜
構造体の宣言が、何がどこにあるのか って
みんなどうやって調べてる?
地道に /usr/include をgrepしてる?
なんていうか、構造体の宣言と、それを使っているところと、
ごっちゃになっちゃって調べるのがすごく大変じゃない?
どう?
0772login:Penguin
03/08/19 04:17ID:v6fEt28y漏れは大抵manをみるが。。grepしてみるときもあるけど、別に地道でもないだろ?
grep -r sockaddr_in /usr/include って地道か・・・?
0773login:Penguin
03/08/20 16:14ID:0pNGqgqPなんででしょう?
関数呼び出し回数だけじゃどこに負荷がかかってるかわかんない。
もしかして fork()の子はで処理時間が計測されないとか?
0774login:Penguin
03/08/25 13:01ID:q192lGDpじゃない? さもなければfork()した中で開始時刻と終了時刻を出力するとか。
蛇足だけど、 コンパイラを変えると-gオプションとかうまく動かないことがあるね。
gcc3.xだけインスコしてgdbを変えなかったら、ソースファイルが見つからんとか言われた。
0775login:Penguin
03/08/29 10:11ID:DokghWbkintelコンパイラ以外でキボンヌ
0776login:Penguin
03/08/29 14:23ID:+Ii5K2eY最近のgccも使えるはず。
0777login:Penguin
03/09/02 10:04ID:KpUKip/J( ,_ノ` ) 777
ζ
[ ̄]'E
.  ̄
0778login:Penguin
03/09/04 18:03ID:FHcUI8Nh0779login:Penguin
03/09/09 03:44ID:wDUOST0N>蛇足だけど、コンパイラを変えると-gオプションとかうまく動かないことがあるね。
>gcc3.xだけインスコしてgdbを変えなかったら、ソースファイルが見つからんとか言われた。
コマンドラインで
$ gdb -d ディレクトリ名
って指定するか、gdbコマンド内で以下のように
(gdb) directory ディレクトリ名
すればいいのでは?
0780login:Penguin
03/09/14 14:08ID:Y8kxOv2d0781login:Penguin
03/09/19 00:26ID:KnTrMiuHint regsuccess;
const int nmatch = 5;
regex_t reg; /* regexパターンバッファ */
regmatch_t match[nmatch]; /* マッチした場所格納用 */
char *comment = "data-1.csv,"
"data-10.csv,"
"data-5233.csv,";
regcomp(®, "data-[0-9]*\\.csv", REG_EXTENDED);
regsuccess = regexec(®, comment, nmatch, match, 0);
regfree(®);
for(int i = 0 ; i < nmatch ; ++i) {
printf("%d, %d\n", match[i].rm_so, match[i].rm_eo);
}
とかやっても、match 配列には match[0] にしかマッチした位置が入らないんです。
regcomp や regexec のフラグにも、最初の 1 個目しかマッチさせないとか、
複数マッチさせるとかいったものは見当たらないんです。
これはそういうものなんでしょうか。
とすれば、regexec の 3 つ目の引数って存在意義がないと思うんですが、
複数のマッチ位置を全部返すようにはできないんでしようか。
よろしくお願いいたします。
0782login:Penguin
03/09/19 00:27ID:KnTrMiuH0783login:Penguin
03/09/19 01:18ID:eWuAESL5そんなもんらしい。
nmatchの効果については
http://www.aihara.co.jp/~junt/program/regex.html
とかに書いてあった。
0784login:Penguin
03/09/19 01:27ID:KnTrMiuHどうもありがとうございました。
() を含んだ部分正規表現というもの?(詳しくないので違ってたらすみません)の
どれにマッチしたかが配列に返される、ということなんですね。
0785login:Penguin
03/09/22 20:54ID:HF5ZnEZUログメッセージはどのファイルに書き込まれますか?
テキストでは /var/log/debug となっていたのですが、該当するファイルがないもので。
LOG_INFO だと /var/log/messages に書き込まれています。
0786login:Penguin
03/09/22 22:01ID:jpPJqFHHsyslog.confの設定による。
/var/log/syslogあたりに落ちてない?
0787login:Penguin
03/09/23 01:59ID:wn/KYk6V方法はないでしょうか?
今はmainのargv[0]から自分の名前を取ってきて、それに対してpopen
ストリームにwhichコマンドを流す事で絶対パスを取ってきていますが、
もっと簡単で確実な方法がありましたら教えてください。
自己参照を行うプログラムなので、どうしても知る必要があります・・
0788login:Penguin
03/09/23 04:39ID:OLVM2aZF/proc/self/exe が簡単確実だが、Linux 固有。
Unix 一般に移植したいなら自己参照をあきらめたほうがいい。
0789login:Penguin
03/09/23 05:06ID:2y799NSB/proc以下を参照するより速くて簡単な気がするなぁ。
/var/lock/subsys/とかにpidファイルとかロックファイルなんかを置いて排他制御してると
こけた後が面倒かと思って、/proc以下のpidをスキャンし実行ファイルのフルパスを
取り出すコードを書いたことがあるよ。
でもopendir()とかreaddir()を使って長ったらしいので、冒頭の方法のほうが簡単で美しいと思われ。
但し、当然のことながら、popen()で開いた先に情報を流すように書かれたソフトしか対応できない
から不自由といえばそうかも。
0790login:Penguin
03/09/25 12:24ID:zVZpqnRh評価するスレッドがあったらおもしろいのでは?
このスレでこんな話をするのは微妙にスレ違いかもしれないが。
0791login:Penguin
03/09/25 14:07ID:7PKpYukUいいだしっぺ(ry
0792login:Penguin
03/09/25 17:09ID:FN6PNMc80793login:Penguin
03/09/25 17:54ID:CHI7SxACApacheコードの品質は商用ソフトと同程度
0794login:Penguin
03/09/25 18:28ID:OvVti3qw>欠陥率が同程度ということは、オープンソースソフトはスタート時は
>プロプライエタリなソフトと同じくらいの完成度であることを意味するが、
詭弁だな。
Apatcheは例外的に需要があったというだけで、オープンソースソフトウェア
全てに対し当てはまるわけではない。
いくつかのオープンソースソフトウェアに対し、同じ様な調査を
繰り返せば悲惨な結果になることは想像に難くない。
0795login:Penguin
03/09/25 21:08ID:eArqU2g80796login:Penguin
03/09/26 23:04ID:Y8/LJVvSしかも前回発見された時の賞金の倍になってくとか。
でも、現在までに3つしかみつかってないとか。
Unix板のトリビアスレでみかけたんだが。
それだけ完成されたコードってことなんですかね?
0797login:Penguin
03/09/27 00:13ID:DuC3AJuD0798login:Penguin
03/09/28 13:54ID:iv6k0XYL0799login:Penguin
03/09/28 20:39ID:tTh3N0uxご自由に。
0800login:Penguin
03/10/13 00:59ID:VcU5GyRD0801login:Penguin
03/10/15 00:10ID:WteJLNwEttp://user.ecc.u-tokyo.ac.jp/~s31552/wp/bpo/
0802login:Penguin
03/10/26 00:44ID:rFeAGc7C作りたいのですが、
mozillaが次々、起動されていっていまいます。
立ち上げた、mozillaの同一タブ内へページの読み込みを指定したいの
ですが、どうすればいいでしょうか?
0803login:Penguin
03/10/26 00:52ID:RyP2AbXBmozilla --help
-remoteで目的を達成できるはず。
0804login:Penguin
03/10/26 00:54ID:5q8AKgF4http://www.mozilla.org/unix/remote.html
あたりの機能が使えないか検討。
0805login:Penguin
03/11/06 21:38ID:IDhTYBmO0806login:Penguin
03/11/15 13:56ID:2o75E3XL0807login:Penguin
03/11/15 15:52ID:mzbZHTgK(゚∀゚)できない
0808login:Penguin
03/11/15 22:29ID:BWJ3qu85forkはできないけど、スレッド(pthread)なら可能。
0809login:Penguin
03/11/16 00:04ID:q7HsnD3Jifconfigでeth0に割り当てられているIPアドレスを取得したいのですが・・・。
試しに同じコードをWindowsで動かしたらちゃんとLANカードに割り当てられたIPアドレスが表示されました。
Javaでeth0に割り当てられているIPアドレスを取得する事ってできるのでしょうか?
0810login:Penguin
03/11/16 02:26ID:UocxIZFDLinux上での名前解決の設定が"127.0.0.1"にされているからでは。
もし、DNS検索でhostsファイルが優先されているなら
/etc/hostsにちゃんとIPアドレスとマシン名が設定されているか確認したほうがいい。
例えばホスト名がhoge(192.168.1.1)の場合、/etc/hostsファイル設定は
/etc/hosts:
127.0.0.1 localhost.localdomain localhost
192.168.1.1 hoge
0811809
03/11/16 13:32ID:q7HsnD3Jレスありがとうございます。
/etc/hostsに直接記入した場合、IPアドレスが変更になった時はいちいち書き換えなければならないのではないでしょうか?。
動的にIPアドレスが割り当てられている環境なので、できれば自動で取得する方法を知りたいのです。
ifconfigなどでは表示されているので、なんらかの方法があると思うのですが・・・。
Linux初心者なもので、もし見当違いな事を言っていたら申し訳ないです。
0812810
03/11/16 16:14ID:jLgv/+o8以下のページの"DynamicDNS"を参照
http://www.nsknet.or.jp/~kamichan/linux/installdiary/dns.html
0813login:Penguin
03/11/17 18:18ID:R6kCcdNZselectが Bad file descriptorとか言って怒ってる (;つД`)
selectが使えないと相手のcloseを知るタイミングもSIGCHLDだけで複数パイプのどれだか分からず…
神様助けて下さい。(-人-)
0814login:Penguin
03/11/17 18:47ID:R6kCcdNZ0815login:Penguin
03/11/23 03:57ID:lcDeSyj7メモリをどのくらい消費したのかとまで調べる方法はありますか?
0816login:Penguin
03/11/23 19:50ID:wjjvLLivやる。
memcheck.sh
#!/bin/bash
$* &
com_id=$!
max_memsize=0
while ps $com_id > /dev/null
do
memsize=`ps --no-headers --format '%mem' $com_id`
if expr $memsize '>' $max_memsize
then
max_memsize=$memsize
fi
sleep 1
done
echo "Max memsize is $max_memsize"
使い方
memcheck.shとして保存して、
chmod +x memcheck.sh
./memcheck.sh jikkou sitai command
いじょ。
0817login:Penguin
03/11/23 21:33ID:wjjvLLivWSCvifieldで、数値のみ入力にする浮動小数点編
以下のプロシージャをトリガ FURCUS_CHで登録
def vifi_tof(object)
strval = object.getProperty("labelString").getCharPtr()
return if strval == ""
fval = strval.to_f
object.setProperty("labelString",fval.to_s)
# object.update()
Mpfc::WSGIappDev().update()
end
0818login:Penguin
03/11/24 00:32ID:aGsdOEbvGNUソフトウェアプログラム と C++プログラミング入門
を購入してきたんですけど方向として間違っていますか?
一つ目の目標としては、エディタを作ってみることです。
参考にエディタのソースを探しているんですけど、見つからないですw。
向いてないのかなぁ。。。
0819login:Penguin
03/11/24 00:46ID:ouo7pXOjviのソースとかemacsのソースとかedのソースとか、その辺に転がってる罠。
0820login:Penguin
03/11/24 01:16ID:aGsdOEbvsrc.rpmの状態からソースを取り出すのには
どういった手順が必要なのか。。。
本見てもインストールの仕方ばかりで。。。
もちょっと頑張らなくちゃ。
■ このスレッドは過去ログ倉庫に格納されています