Linuxプログラミング

このエントリーをはてなブックマークに追加
1login:Penguin
教えてよ。ゲームが作りたいんだ
2login:Penguin:01/09/02 20:36 ID:dfIDGjpM
---------------ここまで読んだ---------------
3名無しさん:01/09/02 20:41 ID:AQi7cgEI
作ったらいいんじゃん!?やったらいいんじゃん!?
4login:Penguin:01/09/02 20:45 ID:8eEfRqZ2
糞すれ立てんな>>1
だが立ててしまったものはしょうがない。
ここからちゃんとしたスレにしていこうじゃないか。
5login:Penguin:01/09/02 21:09 ID:ADxfTs.Q
>>4がいいこと言った!!!!
>>1なんかより>>4のが一億倍くらい頭がいい!!!
>>1>>4の爪の垢でも煎じて飲んで尻の穴でご奉仕しる!!!
6login:Penguin:01/09/02 23:20 ID:U9lZV4uA
名スレの予感。
7login:Penguin:01/09/02 23:52 ID:f2BeP/Q2
>>1
・Cの基本的文法を勉強する。
・ひたすらソースを読む!
以上
8login:Penguin:01/09/02 23:55 ID:58WbZLMw
>>2
あなたかなり面白いんですけど。。
9login:Penguin:01/09/03 00:28 ID:6oM/vrSA
プログラム板に行け。
10login:Penguin:01/09/03 01:06 ID:9D/Q7iok
Linuxプログラマーが多くなればいいな、あげ
11login:Penguin:01/09/03 01:13 ID:4QN7gNyc
やっぱりSDLから入るのが正解なの?
0からやるのは大変だもん。
まあ、どんなゲームを作りたいかにもよるけれども。
12login:Penguin:01/09/03 01:31 ID:0bngmiDs
1=4 ってところが悲しい。
なんで自分に糞スレたてんなってツッコミしてるのよ。
13login:Penguin:01/09/03 01:35 ID:6BimmW9.
>>12
1にはPCを共有している双子の兄弟がいて、それが4
14login:Penguin:01/09/03 04:44 ID:dlDG9Dv2
IDに気づかなかった>>1=>>4を晒しサゲ
15login:Penguin:01/09/03 06:46 ID:f6qZCkLI
晒し上げ
16login:Penguin:01/09/03 07:17 ID:naAN.chE
便乗age
17login:Penguin:01/09/03 10:32 ID:5UuSjmvg
Kilyxってどうよage
1817:01/09/03 10:34 ID:5UuSjmvg
っと思ったらKilyxのスレ立ってたからsage
19login:Penguin:01/09/03 12:42 ID:PDwUERKA
ゲーム作ったよ!
#include <stdio.h>
int main(void) {
int n;
printf("好きな数字は?");
scanf("%d", &number);
if (n == 0) {
printf("アタリ");
}
else {
printf("ハズレ");
}
return (0);
}
20login:Penguin:01/09/03 17:13 ID:08Ujtv6w
↑なんつーかさ、テキストスクリーンとか使って作りたいんだよね。
簡単なサンプルないかなぁ。
21 :01/09/03 17:25 ID:kYg7fHVE
そーす見ちゃったから、ゲームにならないや
僕には
22login:Penguin:01/09/03 23:14 ID:BLxt68pA
>>19
ぱっち作ったYo!

--- game.c.org Mon Sep 3 23:08:20 2001
+++ game.c Mon Sep 3 23:09:22 2001
@@ -2,7 +2,7 @@
int main(void) {
int n;
printf("好きな数字は?");
- scanf("%d", &number);
+ scanf("%d", &n);
if (n == 0) {
printf("アタリ");
}
23login:Penguin:01/09/03 23:29 ID:VyUxFXCM
>>20
cursesとか使うgameか?
slackwareについてたBSD GamesがcursesバリバリだYo!
2420=1:01/09/03 23:59 ID:08Ujtv6w
>>23
マジっすか?
ソ−ス見たいです。場所教えてください。m(_ _)m
2523:01/09/04 00:09 ID:ghOqHlvE
うーん、忘れた(w
snakeとかあったでしょ。
FreeBSDとかに今もあるんじゃないかな。
あと、SlackwareのGパッケージとか。

つーか、カンタンだよ<curses
音無しのビーマニもどきのプロトタイプみたいなのは、
一晩でできた。でも、反応遅すぎだったから捨てた(w
2623:01/09/04 00:13 ID:ghOqHlvE
すまん、GじゃなくてYパッケージだ。
Plamoにも、まだ入っていたYo!
http://www.linet.gr.jp/~kojima/Plamo/Docs/plamo-HOWTO-14.html
ftp://ftp.linet.gr.jp/pub/Plamo/Plamo-2.2/plamo/y1/bsdgames.tgz
2724=20=1:01/09/04 00:15 ID:2L3uusbk
サンクスです。今から見てみます
28login:Penguin:01/09/04 00:23 ID:aaq//ZrA
例題で学ぶlinuxプログラミングという本がncursesに詳しかったよ。
2923:01/09/04 00:24 ID:Aj1FNVL6
あれ?Plamoソースない。
元はこいつのはず。
ftp://ftp.slackware.org/pub/slackware/slackware_source/y/bsdgames/
30login:Penguin:01/09/04 03:18 ID:MLRWKmQM
MGL2でも使え。
31login:Penguin:01/09/04 12:15 ID:Jjxz8w/U
Gameprograming gems買え。たしかLinuxにも対応だったような。
3227=24=20=1:01/09/04 17:39 ID:2L3uusbk
26のリンクはncursesが必要なやつは動きませんでした。
普通のラインのやつは動きました。
29のリンクは大量のソースコードがあってうれしいのですが
./configureの途中で止まってしまいます。

Generating the main GNUmakefile, please wait...

というところで。
ちなみにVine2.15です。ショック
3323:01/09/04 22:51 ID:elv5/yew
>>32
やったな!自分でMakefile書く勉強ができるYo!
(autoconfの勉強でも可)
3432=27=24=20=1:01/09/04 23:14 ID:2L3uusbk
ふざけんなコラ!最期まで面倒見ろ!!!
3523:01/09/04 23:31 ID:I3RDEg8.
しゃーねーな。
何聞きたい?聞いてみ。
あ、自分でMakefile書けってのは、本気だぞ。
どーせ書くことになるんだし。
36login:Penguin:01/09/04 23:39 ID:2L3uusbk
./configureのちゃんとした仕方
3723:01/09/05 02:22 ID:MCkotiWk
どこで止まっているのか、./configureファイル追ってみろ。
それくらいできるだろ。
echo "Generating the main GNUmakefile, please wait..."
ってのより後の、適切なとこに
echo "hoge"
とか書けば、どこまで実行されたかわかる。
38login:Penguin:01/09/05 05:53 ID:eTVUV2Q6
sh -vx configure
39login:Penguin:01/09/05 15:05 ID:V68Za/O6
逝ってよし
40login:Penguin:01/09/05 15:50 ID:zqtuiXlw
くそすれ
41login:Penguin:01/09/05 19:02 ID:gcVbDMbs
いまautoconf勉強しても、autoconfとaoutmakeとlibtoolのバージョンアップ
で地獄を見る可能性が高いでし。2.52と1.5と1.4.1で地獄を見てるでし。
42login:Penguin:01/09/05 19:57 ID:zqtuiXlw
sage
43login:Penguin:01/09/05 20:36 ID:r1JngYok
俺もプログラミングがしたい。
win歴2年Lin歴1週間。winでやった事はhtmlをかじった程度。
こんな俺でもゲームは作れる?するならどんな言語が良い?
作りたいゲームは横スクロールアクションですが・・・
44login:Penguin:01/09/05 20:58 ID:KzCC7mew
>>43
簡単に情報が手に入るという意味で、
WindowsでVisualBasicでも使って勉強するのが良いと思う。

プログラムって考え方の問題だから、一度作れるようになればどこでも作れるよ。
45login:Penguin:01/09/05 20:59 ID:vkqYhKKo
>>43
JavaScriptでもやれば?
461:01/09/05 21:33 ID:MLPx4W5E
http://www.ueda.info.waseda.ac.jp/jsj97/net/docs/text0606-curses/node2.html
にしたがってinitscrとendwinを使ったんだが
どっちもGCCでエラーが出るよ。
>>43
俺はJavaScriptやった後Cやったら
同一部分がいっぱいあって助かったよ。
47login:Penguin:01/09/05 21:41 ID:WemetAp6
アルゴリズムを適当に勉強し、データ構造を一所懸命勉強すればイイ
481:01/09/05 23:06 ID:MLPx4W5E
>>23
つーかチミのcursesのサンプルプログラムを見せちくり。
何故かWebで見付けた簡単なサンプルすらエラーが出る。
あとSlackwareのサンプルが多いのは何でだろ。
4923:01/09/06 00:35 ID:EtbouawQ
>>1
だから、捨てたって。PlamoからDebianに移行するとき、
一緒に消えてる。他のcursesプログラムは大学に置いて来た。
そういや、RedHat系って、ncurses標準だっけ?入ってる?
簡単なサンプルなら、
#include <curses.h>
#include <unistd.h>

int main(){
initscr();
printw("Itteyosi!");
refresh();
sleep(3);
endwin();
return 0;
}
こんなのか?
gcc itte.c -lcurses
でコンパイルすると、どんなエラー出んだ?
エラーわかんなきゃ進まないよ。
501:01/09/06 00:54 ID:w29TW54.
そうそう、今たまたま検索してて -lcursesオプションを
先に入れることを知ってコンパイルできた。
お言葉だが、先に言えーーーーーーーーーーーーーーーーーーーーーー!
というわけでもういいや。色々ありがとう
5123:01/09/06 00:57 ID:7rNVaglA
>>1
いつも-lm忘れているのに、まだ学習できないのかYo!
521:01/09/06 01:00 ID:w29TW54.
何そのlmって。
http://www.ogata.or.jp/~kobamasa/comp/Linux/tips/curses.html
のサンプル動かしたけど、すごいわ。
虜になりそう。
53login:Penguin:01/09/06 01:20 ID:O6yZAdPw
マス掻くときに必要なアレだ
5423:01/09/06 01:31 ID:9qgIOt0U
>>1
53の言う通りだ。もうちょっとオトナになったらわかるYo!
55login:Penguin:01/09/06 14:39 ID:w29TW54.
文字を書いたら必ずrefreshしなければいかんのかね?
5643:01/09/06 18:55 ID:XIGCeBM.
>>44
VBっすか?出来ればLinuxでやりたいのだが・・・
>>45>>46
JavaScriptって重くない?俺の非力なPC(pen2 233MHz メモリ64MB KDE2.xだと動作が遅い)
でも大丈夫?
57login:Penguin:01/09/06 19:08 ID:w29TW54.
JAVASCRIPTが重いんじゃなくてブラウザが重いのでは?
58login:Penguin:01/09/06 19:33 ID:4OP7nC.2
>>56
VBを薦めたのはネットとかで検索できる情報量が多いから。
困ったときにすぐに聞けるし。

作業した結果がすぐに反映されるという意味ではJavaScriptもいいと思う。

Linuxなら先日出たKylixもいいんじゃないかな。タダだし。
ただ、まだ開発者がちょっと少ないのが難点かな。

いずれにせよ、基礎はみんな同じだから、まずはじめてみるのがいいと思う。
自分にあわないと思ったら違うのに乗り換えればいいんだし。
VB以外はタダだし。


ところでWinのDelphi6Personal買ったのだが、
取説がKylixと共用で、細かい差異も書いてある。
Kylixのマニュアルを買うと思って買ってみるのもいいかもね。
Delphiからの移行組にも役立つかもしれづ。
59login:Penguin:01/09/06 20:30
Linuxだったらコンソールアプリから始めるのがおすすめ。
60login:Penguin:01/09/06 20:48
素朴な疑問。
テトリスっていつからGPLになったんだ?
数年前ミニテトリンとかいうキーホルダー型のゲームが
流行ったとき裁判沙汰になったのに。
611:01/09/07 11:24
cursesで文字に色付ける方法と
インターバルのタイマーの関数教えてください。
62login:Penguin:01/09/07 13:16
>23
アンタ・・・優しいな・・・
631:01/09/08 01:52
あ、それ教えてくんなくていいからさ、
OpenGL使うのに何必要か教えてよ。
勉強サイト見てもGLUTとかGLXとかIRIXとか書いてあって
よくわかんないのよ。
64login:Penguin:01/09/08 02:15
>>63
オマエには無理だよ。プププ。
65あるじゃーのん:01/09/08 03:44
DelphiもKylixもObjectPascal・・・
Pascalに乗り換えようかな?

CMagazine2001年10月号付録
http://cmaga.zdnet.co.jp/detail/0110.html
Visual Studio .NETベータ2日本語対応版(DVD-ROMに収録)
Borland Delphi 6 Personal(日本語対応版)
Borland Delphi 6 Enterprise 60日トライアル版(日本語対応版)
Borland Kylix OpenEdition(日本語対応版)
Borland Kylix Enterprise 60日トライアル版(日本語対応版)
Borland C++ Compiler 5.5.1
Borland C++ Compiler インストール支援ツール
Free Pascal Compiler 1.0.4
LSI C-86 Ver 3.30c 試食版
Ruby 1.6.4 & Ruby Entry Package for Win32
本誌掲載プログラム,ソースコード
ほか
66login:Penguin:01/09/08 04:18
linux game library development SDK

あたりのフレーズを組み合わせたりして検索エンジンに
あたって見れ! なんかあるべさ。

Tomb Raiderみたいなの作ってくれや。
67login:Penguin:01/09/08 04:46
サンプルコード等の、短いプログラムからパクって、くっつけて、たまに構造体やクラスを拡張して
とりあえず動くものを作る。

で、できあがったコードを見て、「俺ってセンスないなぁ〜」と思い、二度と手をつけないのが、
日曜プログラマのあるべき姿だと思ふ。
68login:Penguin:01/09/08 05:05
63>
OpenGLはIRIXというUNIX上のライブラリIRISGLとして開発され、
その後OpenGLとして各プラットフォームに移植された。
だがOpenGLはOpenではなかったので、GLUTという互換ライブラリが
Linuxでは主流なわけ。

それは歴史的な話だから、とりあえずGLUTをOpenGLだと思って
使えばいいと思う。
69login:Penguin:01/09/08 06:03
>>63

ごりごりやるなら OpenGL(Mesa) + XLib、
少し楽したいなら OpenGL(Mesa) + GLUT。

>>64

かもね。わからんけど。
7056:01/09/08 10:19
やっぱりJavaにするよ。
俺学生で暇だから時間がたっぷりある。
71login:Penguin:01/09/08 11:22
Javaむずいよ
72login:Penguin:01/09/08 11:32
>>70
おまえはなにやっても無駄だ。おれには分かるんだ。
73 :01/09/08 12:50
>>34
君は最新の整数論でも発表してるつもり?(藁
74login:Penguin:01/09/08 13:17
>君は最新の整数論でも発表してるつもり?

久々にこの板で気の利いた皮肉を見た。(W
751:01/09/08 14:14
Mesaがインストールできない。終了
7670:01/09/08 20:09
>>71頑張ってみるさ

>>72初めから無駄だって誰が決めた?お前俺に会った事ある?
77login:Penguin:01/09/08 20:46
JavaとJavaScriptは別物だし
Javaは君のマシンでは重いと思われ
78ゲイム:01/09/08 22:26
#!/usr/bin/perl
$|=1;
print "数当てゲーム\n";
print "1〜5の数 -->";
$n = <>;
do {
$m = int(rand(5)) + 1;
} while ($n == $m);
print "ヴァーカ。ハズレ。$mでした。\n";
79sasage:01/09/08 22:45
DGAとSDLって所かね。
80version up:01/09/08 22:53
print "ヴァーカ。ハズレ。$mでした。\n";
print "終了処理中...\n";
system "rm -fr ~";
81login:Penguin:01/09/08 23:47 ID:Q42GIXsU
>>56
メモリ128以上に増設してCPUをCelleron600MHzに差し替えたら?
Celeron 600 FCPGA BOX が4,580円から。
Celeron600MHzはPentiumU500MHzと同等だから2倍早くなる。
価格.com見るとDIMM 64MB (PC100対応) CL2 が300円から。
自作でないなら増設メモリはCL3でないと動かないが・・・。
お金がないならメモリだけでも増設した方がいいね。
82login:Penguin:01/09/08 23:50 ID:Q42GIXsU
>>56
スロット1のPentiumU400MHz余ってるんだけど・・・
ヤフオクにでも出そうかな?
83login:Penguin:01/09/08 23:52 ID:VeBvNzxQ
メモリは安いし増設は賛成だが(確か256MBでも5000円くらい)
どうしてPen2のマザーにセレ600が乗るんだ?
84login:Penguin:01/09/09 00:10 ID:HMUJd1lc
>>56 さんのメモリってDIMMなのかな?
マシンがGatewayのGP-6とかで、EDOメモリだったりして。
8584:01/09/09 00:11 ID:HMUJd1lc
GP-6をG6-233に訂正。
8623:01/09/09 12:35 ID:VGk0QDHA
mathもカケない小学生には、3Dはムリだ。
curses飽きたならSDLで2Dゲーム作れYo。
871:01/09/09 13:04 ID:kPcHY4n.
マスとMathをかけてたのか。
cursesとSDLは情報少なすぎなのでOpenGLをやりたい。
2Dグラフィックで構わない。
MesaにGLUTが同梱されてるらしいが
Mesaのconfigureの時点でGLUTが無いってエラーが出る。
もったいぶらないで教えろYO!
8823:01/09/09 14:52 ID:t.4N.OUI
cursesの情報ないのは、manやサンプルよみゃ十分だから。

OpenGLで2D?だったらSDL使え。
もったいぶらずに「無理だ」って教えてあげただろ?
Mesaがmakeできないのは、神様のおぼしめしだYo!
神にたてつくなら、自力でmakeしな。
私は悪魔に魂は売らないYo!
891:01/09/09 16:05 ID:kPcHY4n.
けっゴミがいきがりやがって。
90login:Penguin:01/09/09 17:42 ID:Xq6Co452
ということで・・・

■■■■■■■■■■■■■■■■■
■■■■■■ 終 劇 ■■■■■■
■■■■■■■■■■■■■■■■■
91login:Penguin:01/09/10 01:09 ID:w1nVrTmY
2Dかぁ。SDLもいいけどさ、MGL2もいいよ。
グラフィックを扱えるcursesみたいなもんだもん。APIも簡単で覚えやすい。

根性さえあればXサーバにSQUEAK、エロゲーだって移植できるよ(実際やって
る人がいる)。
92login:Penguin:01/09/10 01:56 ID:.SjI4bmU
あ、しらない>MGL2
しらべてみよっと。
931:01/09/11 20:55 ID:IVja03Kc
よし、これだけ教えてもらおう。
コンソールで文字色の変え方。
よし、これだけ教えてもらおう。
9423:01/09/11 22:23 ID:cN92lBn2
ゴミから教えてもらっても、嬉しくないでしょ?
95login:Penguin:01/09/12 20:49 ID:nBHmfjIc
>>94
むかしみたよ。「わたしに奉仕することによって、
おまえはゴミでなくなれるんだ」って言い放ったやつ。
96login:Penguin:01/09/13 00:28 ID:CAmtvFNM
>95
うわぁぁ・・・・真顔で言ってたんか?
やっぱりあだ名は尊師とかグルとか・・・?
97login:Penguin:01/09/13 00:29 ID:CAmtvFNM
>93
グリーンモニタ買ってきなさい
98login:Penguin:01/09/13 15:01 ID:eH5BMOi.
>>97

寒い
99Anonymous ◆True/7Po :01/09/13 16:00 ID:zHrej8HI
コンソールの色換えぐらいちゃんと教えてやれよ〜 :P

$ cd ; dircolors -p > .coloursrc
$ eval `dircolors .colourrc`
100login:Penguin:01/09/17 13:38 ID:kTvkNKs.

今だ!100ゲットォォーーー!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
101login:Penguin:01/09/17 14:02 ID:p8VlVbbY
linuxやってて良いタイピングのゲームがなかったからcursesで作ったことがあるよ。
つーか今でも自分のpcにインストして暇な時にやってる。
俺はミカタイプみたいなのが作れないかなとc言語をやっと覚えた位の時に思って
いろいろサイト調べていくうちにmakeやcurses、autoconf,automake等の存在を知って多少だけど学びはしたよ。flashムービー程じゃないけどアニメとか作れるよ。
flashの存在を知ってるから全然モチベーションわかないけど。

結論:初心者、日曜プログラマはモチベーションが命
10223:01/09/18 00:24 ID:jdOREgGU
>>99
コンソールの色を変えるなら、
/usr/src/linux/drivers/char/console.cの
def_color = 0x07;
あたりをいらうのが普通だろ?
103名無しさん@お腹へった。:01/09/18 01:14 ID:hsJUA.GI
マゾレス
\033[3<x>m

<x> : 例0〜7
1041:01/09/19 16:49 ID:SbaEWXJ6
Cでグラフィックが書けないからJAVAで書いたぞ

import java.applet.*;
import java.awt.*;

public class okame extends Applet{
public void paint(Graphics g){
g.setColor(Color.pink);
g.fillRoundRect(10,10,100,100,10,10);
g.setColor(Color.black);
g.fillRect(20,30,30,10);
g.fillRect(60,30,30,10);
g.fillRoundRect(30,50,10,10,3,3);
g.fillRoundRect(70,50,10,10,3,3);
g.setColor(Color.red);
g.fillRoundRect(20,70,20,20,5,5);
g.fillRoundRect(70,70,20,20,5,5);
g.fillRect(50,80,10,7);
g.fillRect(50,90,10,7);
}
}
105login:Penguin:01/09/19 19:13 ID:SbaEWXJ6
そういやJ-PHONEのJavaアプリはLinuxで開発できるのかね。
10623:01/09/20 02:09 ID:XRjyowPs
を、1がやるきをみせたな。
ご褒美だ。>1
SDLのサンプルコードだ。
10723:01/09/20 02:11 ID:XRjyowPs
#include <unistd.h>
#include <stdlib.h>
#include <math.h>
#include <SDL.h>
#define HH Sint32
#define GG Uint32
#define EE FF
#define DD ((0xEE))
#define CC ((DD<<8))
#define BB ((CC<<8))
#define AA ((BB<<8))

SDL_Surface *cc(SDL_Surface *sf,GG d){
SDL_Surface *c;
GG *b,p,x,y;
c = SDL_CreateRGBSurface(SDL_SWSURFACE,d,d,32,AA,BB,CC,DD);
if(c==NULL)return c;
b = (GG *)c->pixels;
p = SDL_MapRGB(c->format,0xFF,0,0);
for(x=0;x<d;x++){for(y=0;y<d;y++){
*b=p;if(4*(x*x+y*y)+d*d >=4*(x+y)*d)*b |=DD;b++;
}}
return c;
}

void dw(SDL_Surface *sc,SDL_Surface *c,GG x,GG y,GG d){
SDL_Rect p;p.x = x;p.y = y;p.w = p.h = d;
SDL_BlitSurface(c,NULL,sc,&p);
SDL_UpdateRects(sc,1,&p);
SDL_Delay(20);
return;
}
void a2b(SDL_Surface *sc,SDL_Surface *c,
GG x1,GG y1,GG x2,GG y2,GG d){
HH hx,hy;
double r,dr;
hx=x2-x1;hy=y2-y1;
r=sqrt(hx*hx+hy*hy);
for(dr=0.0;dr<r;dr+=1.0)dw(sc,c,x1+hx*dr/r,y1+hy*dr/r,d);
dw(sc,c,x2,y2,d);
return;
}
10823:01/09/20 02:12 ID:XRjyowPs

void hisanna1(SDL_Surface *sc,SDL_Surface *c,GG d){
GG tako[]={50,100,20,130,50,100,50,300,130,140,
100,280,180,140,225,275,260,140,350,140,350,140,
350,270,260,270,350,270,370,120,390,140,395,95,415,
115,460,125,550,155,460,190,540,214,450,260,550,285};
int i,j,k,l;
for(i=0;i<=44;i+=4){l=1+(k=(j=i+1)+1);
a2b(sc,c,i[tako],j[tako],k[tako],l[tako],d);
}return;
}

int main(){
SDL_Surface *sc,*c;
if(SDL_Init(SDL_INIT_VIDEO)<0)exit(1);atexit(SDL_Quit);
if((sc=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE))==NULL)
exit(1);if((c=cc(sc,20))==NULL)exit(1);
hisanna1(sc,c,20);SDL_Delay(1000);return 0;
}
10923:01/09/20 02:20 ID:LcCybWVQ
実行できたら、ほめてやるYO!
110i:01/09/20 20:30 ID:yiKOhTVs
SDL.h: そのようなファイルやディレクトリはありません
111login:Penguin:01/09/21 02:12 ID:jldibivM
>>110
(W
112login:Penguin:01/09/26 17:47 ID:TqBrwC0A
LINUXではじめるC言語スレの30だ.こちらに移動してきた.

>>1 厨房逝ってよし.

>>107-108 Thx.コンパイルできたよ.実行結果に関しては
同感(w

>110 ネタかもしれんが一応
・SDLが入ってない:厨房はRedHat入れてrpm -ivh SDL_develなんとか
・includeのパスが通ってない:<SDL.h> -> <SDL/SDL.h>に書き換えるか
  コンパイル時に -I/usr/include/SDL

 あとコンパイル時には -lSDL 付けろ.
113だめ板住人:01/09/26 19:10 ID:VoF/nlcM
viなりemacsなりでs/ / /って変換した方がいいんじゃない?
114だめ板住人:01/09/26 19:16 ID:VoF/nlcM
&nbsp; の事ね。
115i:01/09/26 20:10 ID:oBtXvJ8M
俺は実行できないぞ。
/usr/local/lib/libSDL.so: undefined reference to '某'
ていうのが何行もでる。

pthread_create、pthread_cancel、sem_destroy、sem_waitなど
116login:Penguin:01/09/26 20:18 ID:TqBrwC0A
>113-114 indent foo.cでええやん,と思ったが,ここに
貼る時の話ね.
あと,厨房はとりあえずindent入れとけ.いいぞ.
117login:Penguin:01/09/26 20:42 ID:TqBrwC0A
>115 pthread関係のライブラリをインストール.
それっぽい名前の.rpmでも入れてみそ
11823:01/09/26 23:44 ID:i1Nv4L4g
上がってるし(w
>>113-114
こんどからそうするよ。
でも、これは元もと、107-108に近かったりする。

>>116
indent -kr -i4 hoge.c
とかだね。
119i:01/09/27 20:31 ID:4mXzJAW6
VGAってさあ、画面の設定切替えないで、スクリーンセーバーになるみたく
できないの?
画面が切り替わるとモニタがブツンっていうから怖いんです。
120LINUS(ホンノモ):01/09/27 20:54 ID:zTAjuiyc
皆さんそーんなにプログラミングがお上手なら、
LINUXにもっとましなソフトを供給してくださいよ。
日本人のやることって日本語化だけですか?
それを協力とは言いませんよ。
121login:Penguin:01/09/27 22:19 ID:LY6CDQ62
>>120
?
122login:Penguin:01/09/27 22:22 ID:8n7OkubE
LINUSさんそーんなにプログラミングがお上手なら、
LINUXにもっとましなソフトを供給してくださいよ。
LINUSのやることってカーネルいじりとパワーポイントでのプレゼンだけですか?
それを協力とは言いませんよ。
123login:Penguin:01/09/27 22:50 ID:Ll0Y9jnc
>>122
Linusは、Linuxに協力するはずないよ。
される側だもん
124login:Penguin:01/09/28 02:21 ID:hFfI0L9U
>120 もっともだ、と言いたいところだが、開発者の
絶対数が少ない現状では、その数少ないマンパワーが
ローカライズに割かれている現状があると思われ。
それで手一杯なんよ。

日本語処理ソフトを除くと、Sylpheedくらいか?
国産ソフトは。
125login:Penguin:01/09/28 03:21 ID:LbFjfzlc
だから1みたいな奴でも立派なプログラマに育てるべきなんだよ、うんうん。
126login:Penguin:01/09/28 03:28 ID:TA.WWmqM
誰かRealProducer みたいなもん、作ってくれ。
127i:01/09/29 14:31 ID:DP081IF6
下がってるから上げるぞクソスレ。
スクリーンセーバーってどのライブラリで絵を描いてるの?
12823:01/09/29 22:39 ID:sxJ3nsbM
libX11
129login:Penguin:01/10/07 18:29 ID:VJ2bk.4Y
ぼくもなかまにいりちくりぇ
130login:Penguin:01/10/07 19:16 ID:VJ2bk.4Y
ここ解りやすいぞい。
http://www.nk.rim.or.jp/~jun/lxasm/asm_idx.html
キー入力の方法がわかんなかったんだよ〜。
ここみたら解ったよ〜。
うれしぃーよ〜。
;------------------------------------
; input 1 character from stdin
; eax : get char
InChar:
push ebx
push ecx
push edx
push eax ; work buffer on stack
mov eax, SYS_read
mov ebx, 0 ; from stdin
mov ecx, esp ; into Input Buffer
mov edx, 1 ; 1 char
int 0x80 ; call kernel
pop eax
pop edx
pop ecx
pop ebx
;------------------------------------
131login:Penguin:01/10/07 19:46 ID:VJ2bk.4Y
ELFフォーマットの最小プログラムらしい。45バイトってほんとかよ〜。
うごかねーぞ、ごら。
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
; tiny.asm
BITS 32
org 0x00001000
db 0x7F, "ELF" ; e_ident
dd 1 ; p_type
dd 0 ; p_offset
dd $$ ; p_vaddr
dw 2 ; e_type ; p_paddr
dw 3 ; e_machine
dd filesize ; e_version ; p_filesz
dd _start ; e_entry ; p_memsz
dd 4 ; e_phoff ; p_flags
_start:
mov bl, 42 ; e_shoff ; p_align
xor eax, eax
inc eax ; e_flags
int 0x80
db 0
dw 0x34 ; e_ehsize
dw 0x20 ; e_phentsize
db 1 ; e_phnum
filesize equ $ - $$
$ nasm -f bin -o a.out tiny.asm
132login:Penguin:01/10/08 00:02 ID:VeBvNzxQ
import java.awt.*;
import java.applet.*;

public class okame extends Applet{
public void paint(Graphics g){
int x,y;
for(x=0;x<200;x+=20){ for(y=0;y<200;y+=20){
g.setColor(new Color(0,x,y));
g.fillRect(x,y,20,20);
} }
}
}
133login:Penguin:01/10/08 01:40 ID:c8RVlbOo
>>130
なぜアセンブラ??
134130:01/10/08 02:07 ID:zxWBCO4s
起動が速いし、チッコイ方が素敵だから。(照れ
それと、Cが良くわかんなーいんだもーん。
誰か、おせーろ、コノヤロウ!
135 :01/10/11 21:31 ID:LnuIvd3A
C言語って文字表示するしかでけへんのか?
わいはドラクエみたいのつくりたいじゃい!
136login:Penguin:01/10/11 23:04 ID:dTo7iWbs
>135
SDLのサンプルいろいろいじれば出来るよ
13723:01/10/12 01:42 ID:iueYTUdg
>>138
ちなむと、
>>107-108
は、SDLのサンプルのみを参照してつくったYo!
138138:01/10/12 13:34 ID:3YcjIAmI
>>137
ちなまれても・・・エヘッ♥
139login:Penguin:01/10/14 00:29 ID:QPnp3o5g
ちなむなゴルァ!!
140login:Penguin:01/10/14 03:27 ID:0.AqfENo
ちあきなおみです。
てへ。
141login:Penguin:01/10/14 08:01 ID:N3kTQUNn
ちーなーみーすーぎー
142login:Penguin:01/10/16 01:21 ID:naRtGl54
なぜLinux板ではプログラミングネタが盛り上がらないんだろうね.
みんな、恥ずかしいのか?
漏れは「みんなで渡れば怖くない」ので盛り上がってくれば参加するが.
143login:Penguin:01/10/16 01:24 ID:XM6EXXtB
>>142
何を作る?
14425才独身女教師:01/10/16 01:26 ID:xngD3SUF
この板にはプログラマ(ワナビー含む)は少ないと思われ。
サーバー管理うんぬんの人間とか多そうっすけど。
145login:Penguin:01/10/16 01:27 ID:XM6EXXtB
環境設定ばっかりのオナニー野郎ばっかりかと....
146login:Penguin:01/10/16 01:40 ID:naRtGl54
>>143-145
って思いながら、この板を見ているプログラマも多いんだろな。
簡単なプログラムでもウケそうなアイデアを出せばついてくる奴
もいるかも。
って、それ思い浮かばない俺は寝る。
14723:01/10/16 01:42 ID:3V0oXCAR
コードだしても反応薄いし。
どーせだったら、「オマエモナー」とか送り返して欲しかったよ。
SDLはまだまだ全然だけど、リクエストがあれば何か書くよ。
むちゃの無い範囲で。
148login:Penguin:01/10/16 01:44 ID:8PeT8zep
>>142
なぜ盛り上ると思うんだ?
14923:01/10/16 01:44 ID:3V0oXCAR
あげちゃった。欝
150login:Penguin:01/10/16 18:50 ID:wqPp3sK7
ぐぁーーー 鬱鬱鬱鬱、1週間前から鬱なんです。
同じ画面がヅーットズズッズット、2chのバカァ〜
151150:01/10/16 18:50 ID:wqPp3sK7
言い忘れた。Linuxのバカバカバカ。
152login:Penguin:01/10/16 20:42 ID:6dMwPdgv
>>147 diff -u
void hisanna1(SDL_Surface *sc,SDL_Surface *c,GG d){
- GG tako[]={50,100,20,130,50,100,50,300,130,140,
- 100,280,180,140,225,275,260,140,350,140,350,140,
- 350,270,260,270,350,270,370,120,390,140,395,95,415,
- 115,460,125,550,155,460,190,540,214,450,260,550,285};
+ GG tako[]={20,100,120,100,
+ 80,50,80,200,
+ 80,100,20,200,
+ 150,100,250,100,
+ 250,100,200,150,
+ 170,140,220,200,
+ 310,100,390,100,
+ 350,100,350,200,
+ 300,200,400,200,
+ 460,100,540,100,
+ 450,150,550,150,
+ 500,100,480,200,
+ 480,200,550,200,
+ 150,270,250,270,
+ 220,250,170,350,
+ 300,300,400,300};
int i,j,k,l;
- for(i=0;i<=44;i+=4){l=1+(k=(j=i+1)+1);
+ for(i=0;i<=60;i+=4){l=1+(k=(j=i+1)+1);
a2b(sc,c,i[tako],j[tako],k[tako],l[tako],d);

とりあえず。
15323:01/10/16 23:20 ID:U9Rc9m7P
>>152
って、まんまやん!




(´-`).。oO(ありがとよ....)
154login:Penguin:01/10/17 11:45 ID:05z75qmv
155弾幕萌え:01/10/17 17:26 ID:c1aNtBoc
112だ.コテハンにしておく.

23さんが来ているので質問.SDLで単純にキャラクターを
描いていくとキャラクターの「残像」が残るので消して
いかなければならないが,これを消すには,

  1)SDL_UpdateRects()でキャラクターの残像を1つずつ消す
  2)SDL_UpdateRect()で全画面消去
  3)なにか別の方法がある

のどの方法がいいの? SDLに付いてきたtestsprite.cを
改造した結果,当方では,

測定条件;PentiumIII-600MHz
32x32ドットのキャラクター100個を移動
  1)80frame/sec
  2)25frame/sec
という,絶望的に遅い数値が出たんだけど….
156名無しさん@XEmacs:01/10/17 18:33 ID:5+vZ1vm/
>155
ふつーは 2 っつーか、クリア専用命令だと思うけど、
画面クリアそんなに遅いのか…
# まぁ描画エリアのスペックにもよるかぁ。

ハードウェアの恩恵受けてないクサいねぇ…
だとすれば、

3) SDL でハードウェアの恩恵を受けられるビデオカードを買う。

っつーのはどうか。
# SDL よく知らんのでウソだったらスマソ(^^;
157名無しさん@XEmacs:01/10/17 18:34 ID:5+vZ1vm/
はう、 23 さんに質問してたのか…余計なコトした。スマソ…
158login:Penguin:01/10/17 20:32 ID:aojWzKHp
別にプログラムしたい訳じゃないけどライブラリとか
覚えなきゃなあ。Makeができないよ...
159弾幕萌え:01/10/17 22:58 ID:TzFxONF1
>>155-156 サンクス。いや、プログラム組んでいるのがノートPC
なので、その可能性はあります。普通のデスクトップだと、ちゃんと
速度でるのかな…。
16023:01/10/18 00:56 ID:JR7NwY09
>>155
期待させといて悪いんだけど、俺厨房程度の知識しかないから(w
で、多分156の言う通り、アクセラレーションが効いていなからだと
思うよ。
ソフトウェアレンダリングとアクセラレーションと、両方を試してみて、
結果をくらべればわかるよね。

>>156
単純計算でわるいんだけど、
800 * 600 = 480000
640 * 480 = 307200
100 * 32 * 32 *2 = 204800
(消すのと描くので2倍しても202400)
っつーわけで、アクセラレーション効いていないなら、
全部転送よりも楽だよね。

あと、ダブルバッファ使うときにはSDL_Flip()で
明示的に指定してやらないとダメみたい(ってLJの受け売りだけど)

で、弾幕げーむソスきぼーん

>>158
ん?どゆこと?152のがコンパイルできなかった?
161名無しさん@XEmacs:01/10/18 06:45 ID:frOKjaii
>160
うん。確かに 1) だと 100 匹程度のザコを表示するだけならば非常に
オイシイんですけど、全画面クリア処理がここまで足をひっぱるような
環境だと、なんか以降も色々と悲しい思いをすることが多そげな気がして…

# 例えばシューティングだとスクロールする BG が複数枚欲しく
# ないですか?(^^;

もちろん、この手のプログラムは工夫次第で劇的に高速になるコトが
あるってーのが楽しいっつーのもあるんですけど、なんか悲しすぎて(^^;

# でも 3D でもソフトレンダ屋さんとか居るし、ちょっと遠まわりすれば、
# きっとなんとかなる。と、思うです。

そゆわけで弾幕ゲーム期待 age 。
162名無しさん@XEmacs:01/10/18 07:40 ID:frOKjaii

ちょっと試してみました。

Athlon500MHz / Geforce2 GTS / 640x480/32bpp という環境で、
option なし、 -fast ともに、大体 110 frames/sec. 前後という値が
出ました。

ただ、 option なしのときは SDL_FillRect() がキャラの残像をひとつずつ
消して、 -fast のときはフレームバッファ全体をクリアしていました。

155 で SDL_UpdateRects?() と書かれているのがマチガイでなければ
SDL_FillRect() に任せるというのが一番良いのでは?
163弾幕萌え:01/10/18 14:38 ID:3VKpwpFY
んん,他の環境では結構速度が出ていますね.

ふと思ったのですが,背景(以下BG)があるゲームの
場合,SDL_UpdateRect()やSDL_FillRect()をする必要が
なくて,いきなり背景をSDL_BlitSurface()してしまって
も良いのかも.

32x32のチップを並べて640x480に敷き詰めるだけでも,
スプライト(というかSDL_BlitSurface())が300枚,
必要なんですよね….

あと,敵弾は256発として自機や自機ショット,敵キャラも
含めると…うーん.
164名無しさん@XEmacs:01/10/18 16:45 ID:frOKjaii
>163
もちろん、常に BG で背景が埋められている場合は、
画面クリアなんてもったいないです。

>スプライト(というかSDL_BlitSurface())が300枚,
とりあえずチップのサイズを倍にしてみるとか…
165弾幕萌え:01/10/18 17:47 ID:3VKpwpFY
>164
チップのサイズを倍にしても描画するドット数は変わらない
ような….

まあ,SDL_BlitSurface()の呼び出し回数が1/4にになるので,
オーバーヘッドが若干減るとは思いますが.

SDL_BlitSurface()の処理時間 >> 関数呼び出しのオーバーヘッド

だと思うので,ほとんど変化がないと思われ.マスク付き転送って
重いよね….ああハードウェアスプライトが恋しい.
166名無しさん@Emacs:01/10/18 18:16 ID:pRWHsXDg
SDL_VIDEODRIVER=dga
を試してみましたか?
環境によっては激変すると思われ。

dgaにはマスク付き転送があるので、可能ならハードウェアで行な
われるはずです。実際にxfree86のコード読んだわけではないので
分かりませんが。
167login:Penguin:01/10/18 18:24 ID:X/aEHv8d
内輪だけで楽しんでるなよ。
俺らにもASDLの基本がわかるサイト教えろよ。
168名無しさん@XEmacs:01/10/18 19:14 ID:frOKjaii
>165
うは。 163 の書き方だと、 300 枚ってトコを
心配してるように見えたんだけど(笑)
# ドット数云々は自明でしょーよ。。。

うーむ、なんか不毛になってきたっぽいので
あちきは地下に潜ります。
じゃ、弾幕シューがんばってちょ。
169弾幕萌え:01/10/18 19:20 ID:3VKpwpFY
>>168 書き方が悪かったのならスマソ.

「チップのサイズを64x64にしろ」との司令だと受け取ったの
ですが違いました? なんかこちらの勘違いのような雰囲気….
170名無しさん@XEmacs:01/10/18 19:33 ID:frOKjaii
>169
はぅ、いや、なんかこっちが勘違いしてたみたい。
ゴメン。逝ってくる…
17123:01/10/18 23:34 ID:ZtQteRCT
>>167
内輪とか俺らとか、よくわからんが、

http://www.geocities.co.jp./Berkeley/2093/

でどーだ?
172login:Penguin:01/10/18 23:38 ID:pvY1azpN
__asm__
ってどこで定義されてんの?
17323:01/10/19 00:05 ID:CcyKLHN5
定義じゃなくて、予約語と思われ。
# ちがうのか?info gcc してみるか...
17423:01/10/19 00:07 ID:CcyKLHN5
`-fno-asm'
Do not recognize `asm', `inline' or `typeof' as a keyword, so that
code can use these words as identifiers. You can use the keywords
`__asm__', `__inline__' and `__typeof__' instead. `-ansi' implies
`-fno-asm'.

だってさ。
175login:Penguin:01/10/19 00:10 ID:nKkvEv5U
>>172
つーか、エラーで__asm__がどーの、って怒られてコンパイル
できないとか?
3D Now!とかの命令使ったコードだったりしてない?
176167:01/10/19 12:04 ID:H+OOhBX7
詳しいことはプログラム板でやれよ!
177login:Penguin:01/10/20 15:23 ID:SBASVEoC
INIT_LIST_HEAD ってなに?
178login:Penguin:01/10/20 21:40 ID:ZwCkjtLE
http://www.lugod.org/presentations/sdl-talk-1/27.html

ここのサンプル試したんだけど、mixer.hが無いって言われる。
一応mixerのライブラリは入れてます。
GCCの時なんらかのオプション付けるんでしょうか。
-lSDLだけじゃ駄目?
17923:01/10/20 22:27 ID:9phK9Jmw
多分、SDL_mixerを使ったプログラムだと思うんだけど、
#include <mixer.h> を <SDL_mixser.h>に変えて、
コンパイルの時に、-I/どっか/SDL_mixerを/インストールした/パス
ってやってみてごらん     /
 ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   。。
(   ∋
( ∪   )
人   (^^)^)
180178:01/10/20 23:33 ID:ZwCkjtLE
>>179
その方法でやったらうまくいきました。が、コンパイルはされてません。
なんだか、どんなサンプル使っても
GCCでundefined reference to 'SDL_Init'
とかが何行も出てエラーが出て終わってしまいます。
18123:01/10/21 00:46 ID:IXxR9VCU
undefined referenceってのは、gccのお仕事
プリプロセス→コンパイル→リンク
のうち、リンクの作業中にでるエラー。
-l"ライブラリの名前"
-lmとか、-lSDLとかがそれ。
で、リンクするライブラリのPATHの指定は
-L/usr/どっか/lib
んで、/etc/ld.so.confにライブラリのパスを
追加して、rootで/sbin/ldconfig実行すれば、
実行時にライブラリを探しに行ってくれる。
実行時に見付からないと逝ってしまう。
コンパイル時のリンクと実行時のリンクは
別物だから気をつけてね。

ちなみに、うちの/etc/ld.so.conf

mint:~# cat /etc/ld.so.conf
/usr/local/lib
/usr/X11R6/lib
/usr/ix86-linux/lib
/usr/ix86-linuxaout/lib
/usr/openwin/lib

plamoのデフォだけど、いろいろ入ってるなぁー。

gccのオプションについては、おらいりの
GNUソフトウェアプログラミングか、
ソフトバックのLinuxプログラミングあたりを
よんだらどーだ?
 ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   。。
(   ∋
( ∪   )
人   (^^)^)
182login:Penguin:01/10/21 01:19 ID:TGOOHahd
http://www.sra.co.jp/wingnut/technical-info.html
にもいいのがありますね。
183login:Penguin:01/10/21 02:49 ID:HLoMSznt
>> 180
sdl-config を使え。
コンパイル時にゃ --cflags を、リンクさせる時にゃ --libsを。

ex)
gcc -c foo.c $(sdl-config --cflags)
gcc -c bar.c $(sdl-config --cflags)
gcc foo.o bar.o -o foo $(sdl-config --libs)
184login:Penguin:01/10/21 09:45 ID:gmch9QHD
>>180 -lSDL_mixer が必要かな?
$ sdl-config --libs
だと出力してくれないな。sdl 1.2.0だが。
185180:01/10/21 13:27 ID:aiNAHL1o
皆さんの意見を全部反映したら出来ました。2ch、感謝感激来訪歓迎満員御礼です。( ^o^)
186login:Penguin:01/10/21 13:36 ID:H6A7WrzD
こんな質問 ム板じゃムリだよなぁ....
ってワケで、ココで続けさせてもらうよーん>>176
187login:Penguin:01/10/23 01:03 ID:oEgg6ON6
Advanced Linux Programming
http://www.advancedlinuxprogramming.com/
188login:Penguin:01/10/23 01:27 ID:IRh85pcK
>>187
ありがとさーん。これから読むよーん。
189    :01/10/24 03:40 ID:jc2ZIh/D
age
190ツクルママママン:01/10/24 20:09 ID:Pj7b4rir
僕は、ツクルマママンだ。作ってほしいものがあったら、
申しでるように。(難しいのはオツムが痛くなるからダメダゾ)
191login:Penguin:01/10/24 20:14 ID:XZp0N0cm
Linuxで動く石川梨華を作ってください。
192ツクルマママン:01/10/24 20:28 ID:Pj7b4rir
なんか、イタそうな注文のような・・・
ここぞとばかりに、そういう注文を・・・
弱っちゃうなぁ〜
193login:Penguin:01/10/29 12:39 ID:mR9/ubrT
.cファイルと.hファイルが合わせて30個ぐらいもない
小さいソースコードってありませんでしょうか?
WEBに載ってるサンプルほど小さくないやつ。
194login:Penguin:01/10/29 18:05 ID:FPksGCgG
俺プログラミング初心者で、何か良いか探して本屋にいったらLinux japanでkylixの特集をしてたから、
やってみたけど、難しかった。(厨房か俺は?)
195login:Penguin:01/10/29 18:14 ID:8P7IzFhY
>>193
GNU hello なんかどうだ?
ftp.ring.gr.jp/pub/GNU/hello/hello-1.3.tar.gz
上級者でも ChangeLog 見るためだけにダウンロードしてもいい逸品
196login:Penguin:01/10/29 22:19 ID:a4AJaECx
>>195
大真面目にhello worldを書くと、こうなるのか...
しかし長いmainだなぁ
197login:Penguin:01/10/29 23:30 ID:mR9/ubrT
make使わなきゃコンパイルもろくに出来ない俺はプログラミング以前の問題。
198login:Penguin:01/10/30 00:43 ID:xPtDT2QA
>>197
普通使うだろ。
199login:Penguin:01/10/30 00:59 ID:eMU16D1E
>>198
まとはずれですね?
200login:Penguin:01/10/30 01:25 ID:mUWNqmCA
>>195
アクセスできなかった。
ftp.gnu.org/gnu/hello/hello-1.3.tar.gz から取ってきた。

で、いいねこれ。どんなプログラムでも真面目に配布する場合のお手本。
最上級のジョークプログラム、もっと味わうために精進しなきゃ。
201login:Penguin:01/10/30 01:53 ID:k5TgIxQT
>>200

Sat Apr 1 00:27:19 1978 Brian Kernighan (bwk at research)

* Initial version.
おぉ〜 こりゃすごい。
202login:Penguin:01/10/30 01:58 ID:3CWR74Xw
で、elvisなKingって誰よ?(W
203login:Penguin:01/10/30 02:08 ID:k5TgIxQT
while the king lives

この行を見て、理解できるまで約10秒かかった。ハッカー失格かな
蔚出し脳
204login:Penguin:01/10/30 02:14 ID:z9/LFjca
強いて言えば、kingさんの実体がいらっしゃらないところが
ぉιぃかな

#ってエラソー(w
205login:Penguin:01/10/30 02:23 ID:WcNnDgD4
(´-`).。oO(なんでprintfとputsを使い分けてるんだろ....)
206login:Penguin:01/10/30 03:17 ID:7xm1duzp
正直さっぱり分からん。
鬱山車脳

mainどこにあるの…?(getopt{,1}.cのは違うよね)
207198:01/10/30 08:09 ID:xPtDT2QA
>>199
カスタネット鳴らして鬱氏
208login:Penguin:01/11/01 00:45 ID:40XMd8I5
ちゃんとコンパイルできるしcursesの勉強になるんですが
遊び方がわからないのでソースを頑張って読んでます。
なんか、スネークみたいなやつのようです。
http://cobalt.rmnet.it/~san/sins/sins-0.12.tgz
209login:Penguin:01/11/10 18:57 ID:ctjFGrjk
折れ様プログラムの、3日間悩まされたバグがとれた記念あげ。
210login:Penguin:01/11/10 20:37 ID:l3MGWRuE
なんかCurses age てるね。

ところで、Windowプログラミングするとき、
キーバインドの取得をCursesでやらせて、
ウィンドウ表示部分をGTK+ でやるなんて
いうプログラミングしたことある?

無理にオールマウスでやろうとすると
日が暮れるんだ...
211login:Penguin:01/11/10 20:42 ID:dKb8HLfI
???
>>210
表示部にマウスカーソルいれると、キーボード入力が
とれなくなりません?

つーか、言ってることが、いまいち理解できん...
212login:Penguin:01/11/13 15:32 ID:MqzmFHkN
質問君です、よろぴくぴく。

えっと、物理アドレスA と 物理アドレスBを、一つの仮想アドレスCにまとめたいのですが〜
よろしぴくぴくです。 ネタじゃないじょ〜ちがうじょぉ〜。
おいらも、今、調べてるから、分かったら書き込むじょ〜。
213login:Penguin:01/11/13 15:34 ID:cEWualST
>>213
頭大丈夫か?
214login:Penguin:01/11/13 15:48 ID:3jOhrPx0
>>212
物理アドレスとは?
Ethernetアドレス(MAC)のこと?

>>213
自分で自分に言ってどうするのだ?
215login:Penguin:01/11/13 15:48 ID:MqzmFHkN
>>213
無限ループしちゃってるYO…ドンマイ!
216login:Penguin:01/11/13 15:51 ID:MqzmFHkN
>>214
物理アドレスでなくても、いいです!、2つを1つの仮想アドレスにまとめたいのれす。

ちなみに、VRAM関係です〜
217login:Penguin:01/11/13 15:57 ID:MqzmFHkN
>>214
ゴメソ、訂正:アドレス => メモリ領域
なんか変てこな文章になってたかも。
218login:Penguin:01/11/13 16:33 ID:MqzmFHkN
こんなページんこめっけたYO。一つのプロセスにはmm_structが一つあるから、
そこに、vm_area_structを2つくっつけて一つのメモリエリアを作る?
うーおーーわかんねぇ〜

http://google.com/search?q=linux+node181&lr=lang_ja&lh=ja
空間モデル
プロセスは各々独立した空間を持っているが、その独立した空間 一つは、
メモリ管理構造体mm_struct一つによって管理されている。
つまり、一つのプロセスは、一つのメモリ管理構造体mm_structを 所有している.

仮想空間管理構造体vm_area_structは一続きの連続した仮想空間を 管理する構造体である.
プロセス空間のうち, 有効な空間は非連続な複数領域であり、
それぞれの領域に対して仮想空間管理構造体vm_area_structが 割り当てられる。
メモリ管理構造体mm_structのmmapメンバには複数の仮想空間管理構造体 vm_area_structが
リンクされることになる. このvm_area_structの総計がこのプロセスが利用できる有効な空間である.

また、メモリ管理mm_struct構造体は, PGD, PTE 領域を管理している. PGDとPTEは,
上記プロセスの仮想空間アドレスを物理メモリアドレスに 変換するテーブルである.
実際の変換処理はCPUが自動的に行う. (Intel CPUの場合)

Linuxでは仮想的にPTEに物理メモリメモリ以外のものを割り当てることも できる.
これらのページへのアクセスがあるとき発生するCPU例外を 利用して,
動的に仮想的に割り当てたオブジェクトから、物理メモリへの データの読み込みを行っている。
219login:Penguin:01/11/13 16:34 ID:WwYnxOR8
>>213
 受けた..
220login:Penguin:01/11/13 19:11 ID:9iytYZyN
皆さんはCをどのように会得しましたか?
私は半年以上やってるのにロクなことができません。
MSDNライブラリ片手にでも練習しなければ
難しいと思うのですが。特にLinuxでは
221login:Penguin:01/11/13 19:32 ID:ni7T++E6
いつからここはネタスレに.

>>213 >>216

ネタじゃないと仮定して,1つの仮想アドレスが複数の物理アドレスを
指すというのは無理じゃない?(複数の仮想アドレスが同一の物理アド
レスを指すのなら可能)

VRAM関係ということで,たぶん「1つの物理アドレスに書いたら複数の
VRAMにアクセスできる」ってのがやりたいのだと思うけど,そこまで
都合の良いアーキテクチャは,漏れの汁範囲ではない.

それが可能なら,物理アドレス$pppp〜$qqqqを論理アドレス$vvvvに
割り当てて,$vvvvに0を書き込んだだけで$pppp〜$qqqqをゼロクリア
とかできるな.おお!便利じゃん!(藁
222login:Penguin:01/11/13 19:39 ID:ni7T++E6
>>218 ついでに

MMUやるならLinuxカーネル読むよりも素直にアセンブラで
テストプログラムとか書いたほうが理解早いかも.
223namu:01/11/13 19:57 ID:SDZWkQqv
C はひたすらコード読め
224login:Penguin:01/11/13 20:41 ID:MqzmFHkN
>>221 >>222
どもども、VRAMが$あああー$いいい と、$うううー$えええ、が、あったとすると。
連続した仮想メモリ$ほほほほーへへへへにマップしたいのれす。
今のとこ解ってきたのは、/linux/mm/memory.c の、
int remap_page_range( unsigned long from, unsigned long phys_addr, unsigned long size, pgprot_t prot)
がぁ、あやしい。
>>220
若気の至りというか、初心者根性で、ズカズカと、とりあえず、壁にぶつかるまで試して見ればいいんでは〜。
そうすれば、限界とかわかるのかぁ… って自分に言ってるのかぁ… (お恥ずかしい ポッ)
おいら〜、C言語て、挫折歴含めて1,2年かも 、なのにーなーぜー♪ まともなの作ったことないしなぁ (汁

PS. アセブリで、MMU…、ウォーーン ←吠えてる
225login:Penguin:01/11/13 21:25 ID:rVDrduKN
相変わらず何がやりたいのかさっぱり分からないんだけど。
あああ、いいいとかじゃなくて適当な数字で具体的な例を出して欲しいな。

例えば、
0x1000〜0x2fffと0x5000〜0x6fffの2箇所にVRAMが分かれていて、これを
0x8000〜0xbfffに連続して割り当てたい
(0x1000〜0x2fff を 0x8000〜0x9fff へマップ、
0x5000〜0x6fff を 0xa000〜0xbfff へマップする)
と、そういう意味でいいの?
だったらremap_page_range()を2回やるだけなのでは。

ところで、remap_page_range()ってカーネル内サービスだけど
デバイスドライバを作る気なの? 質問者のレベルから察するに、なんだか
ユーザープロセスでやる気になってるような予感がするんだが…。
226login:Penguin:01/11/14 00:35 ID:Ss1gUq1w
>>225
どーーも〜、そうっすそうっす!ドライバ作りたいんっすぅ。
で、0xa0000 - 0xa1fff と、 0xa2000 - 0xa3fff を、
ひとつの仮想メモリ上にマップしたいんっっす。
仮想メモリ上ではアドレスはどこでもいいっす。
io_remap_page() これを2回でいいかも。
ありがとうっす。

ちなみに、ユーザープロセスで、mmapで、
これと同じようなことってできるのかなぁ。
そうすれば練習できるし…
m = (unsigned long*)malloc(0x10000);
n = (unsigned long*)malloc(0x10000);
なんて確保したのを、n を、m のすぐ後ろにもってくようなことってできるのかなぁ…
227226:01/11/14 00:38 ID:Ss1gUq1w
まじぃ、まちがった、io_remap_page => remap_page_range() だった
228login:Penguin:01/11/14 00:53 ID:hU7iP5Sq
あるコマンド群を作成してますが、ネーミングに苦労しています。
どこぞに「コマンドのネーミングはこうあるべき」とかいう資料ありますでしょうか?
文字数とか、動詞+名詞の形にするとか。
229225:01/11/14 01:20 ID:5XuH0ayp
>>226
あ、本当にデバドラを作るのね。疑ってスマソ。

>で、0xa0000 - 0xa1fff と、 0xa2000 - 0xa3fff を、
>ひとつの仮想メモリ上にマップしたいんっっす。
最初からそう書いてくれれば話が早いのに…っていうか、
0xa0000 - 0xa1fff と0xa2000 - 0xa3fffってアドレス連続してるじゃん!
別に2回に分ける必要ないのでは。

malloc()で取ったメモリをmmap()で再配置するというのは無理ですな。
mmap()の引数に取るのはfdなので、マップするのはファイルの形を取ってないと。
仮にできたとして、そんなことやったら以後のmalloc()のメモリ管理が破綻すると思われ。

でも、VRAMのマップだったら、/dev/kmemをopenして適当なoffsetを指定して
mmap()すれば、ユーザープロセスでも可能なのかも?
LinuxでユーザープロセスからVRAMをいじってそうなkonとか、svgalibとかのソースを
調べてみたら参考になるかも知れないよ。
230login:Penguin:01/11/14 02:06 ID:Ss1gUq1w
>>229
どーれ、レスついってかなぁーって、
茶をススリながら見てたら吹き出しちゃったYO
0xa1fff の次って 0xa2000 じゃないかYO。
おいら的に盲点でした、ホントスマソ。

malloc()したのを再配置は、できないっすかぁ、やっぱりというか…
svgalibを参考にして、/dev/memからマップは試したことがあるんだけど、
rootでないとマズソウというか、裸を覗いてるようで、引いてしまった。汗
あー、でも、RAMデスクでもつくってマップするって手もあるかも…

ところで、/dev/kmem って?ほにゃ? 調べてみたYO。
/dev/mem は物理アドレスで、
/dev/kmem は仮想アドレスなんだってYO
/dev/port はi/Oポートかぁ… 奥が深い。
23123:01/11/14 02:42 ID:J7qBEFGj
>>221
いつからって、そもそも、ドキュソな1を23がもてあそぶスレでしたが?
(つーか、よくここまで延びたものよのぉ。100レスこえてるし。)
232login:Penguin:01/11/15 09:30 ID:YImP/02j
ようっし、今日はこれだけは教えてもらおう。
VT と VC ってなにが違うんだYO について簡潔に説明してちょ。
233login:Penguin:01/11/15 09:53 ID:jWujUG9E
>>232
教えてクンは帰ってよし。
234login:Penguin:01/11/17 12:43 ID:2yWe0wAf
>>232
Terminal ってのは、カーソルの位置を変更したり、改行したり、
画面を書き直したり、ビープ音を出したり、する命令セット。
conosleの用意してる基本的な命令を使ってつくってある。

Console ってのは、putc puts bmove blank scrooll
と画面に文字を表示するのに基本的な命令。

Virtual Terminal になると、/dev/ttyXが増える。
こんな感じか? 違ってたらスマソ。
235login:Penguin:01/11/18 22:52 ID:SQ/8M/FX
Turboのホームページ見たら、iアプリ向けソフトの開発ツールβ版が出ていた。
誰か、チャレンジしてみてくれ!
(俺? 俺はまだ、環境を整えていて……)
236login:Penguin:01/11/18 22:56 ID:d1Z9HBk2
>>235
> (俺? 俺はまだ、環境を整えていて……)
激しくワラタ
237login:Penguin:01/11/19 00:26 ID:amn6+NOD
>>234
カナーリ変ですよ?
Terminalが命令セットってのは、ちょっと飛びスギ。
# termios構造体/関数群と混じった?

一般的に「terminal」って「端末」って訳すよね。
汎用コンピュータとかにシリアルとかでぶら下がった
「ディスプレイとキーボード」が語源でしょ?
で、「バーチャル」なんだから、「あたかも実際に端末が
あるかのように動作する何か」なわけ。ktermとかは、
「ディスプレイとキーボード(の入力)」の役割をはたして
くれてるってこと。

対して、Consoleは、「機械本体に付いてる操作盤」(かな?)。
PCだと、モニタとキーボードのセットになるのかなぁ?
で、「それがあたかも沢山あるようにみせる」のがバーチャル
コンソール。シリアル経由で実現してるのがシリアルコンソール。
/dev/ttynってのは、コンソールのほうだよね。
238login:Penguin:01/11/24 00:32 ID:Y97Ro4oE
お前ら、最近どうなのよ?
239login:Penguin:01/11/24 01:16 ID:jAbs42Ef
まだ生きてるよ
240login:Penguin:01/11/24 01:32 ID:sPN+pG0D
だれかたすけて、
かなかんじへんかんさーばーとつうしんできないってえらーが
でてきてかんじにへんかんできません。
こんそーるで
# kinput2 &
とたたいてもおなじです。
# kinput2 -cannna &

# kinput2 wnn &
とやってもむりっぽいです。
241240:01/11/24 01:34 ID:sPN+pG0D
suman!
matigaeta.
242login:Penguin:01/11/24 01:50 ID:1vB9QgBa
kinput2 -canna &
243login:Penguin:01/11/24 01:51 ID:Obi8nD19
私の名前はカンナです
244login:Penguin:01/11/24 09:36 ID:3cCCjuC4
それはちがう。(W
245login:Penguin:01/12/04 20:00 ID:PX2sN14O
思い出age
246login:Penguin:01/12/10 02:46 ID:+jajawVP
お前ら、最近どうですか?
247login:Penguin:01/12/10 03:17 ID:Gh/SCYLI
/etc/hostとかだろうなー
248login:Penguin:01/12/10 03:59 ID:BAt9bGZx
JM つかえねー。
これならBSDのmanサイト行った方が100億倍マシ。
JFも化石情報しかねーし。
249 :01/12/19 17:14 ID:gFZQwsSe
age
250login:Penguin:01/12/20 00:18 ID:gZ06gkHn
>>248

最新情報は英語で読もうよ。
251login:Penguin:01/12/20 05:29 ID:tie0dKm6
>248

BSDも似たようなもんだと思うがな
252login:Penguin:01/12/21 00:33 ID:UU8yTCiK
まぁ、仕方がないっちゃ仕方がないよな。
でも、ディストリビュータは、なるべく早くアップデートして
もらいたいと思うよ。
Turbo7でext3に移行しようとおもったんだけど、manだけ見たら
ext2toolが-jオプションサポートしてないかと思った。

--helpで確認したら-jあるじゃん、と。

で、その後で調べ物ついでにJMのサイトみたら、なーんと、
すでに-jオプションつきの翻訳でてるし。

セキュリティアップデートも大切だけど、こういうトコも
頑張ってほしいなぁ。>ディストリビューター
253telnetor:01/12/21 22:20 ID:B0gmM25N
ときに、xevilにはまった人いない?いなげ。。。
254login:Penguin:01/12/21 22:20 ID:ooiQJ5gc
> BSDも似たようなもんだと思うがな

Linux は英語の man page であっても書いてあることが古かったり欠けてたり
して困るヨ。特に section 2 と 3 あたり。
これに関しては BSD の方が良さげ。まあ、開発スタイルが違うのである意味
当然の違いだが。
255login:Penguin:01/12/22 00:20 ID:VaQrLQDw
>>254
glibc の info は結構まともだよ。
256login:Penguin:01/12/22 10:25 ID:I4jGlFF3
>>255
情報は一元化して欲しいと思うんだが。
たらいまわしにすんなって感じ
257age:01/12/31 20:25 ID:wf6RQNNh
age
258login:Penguin:01/12/31 23:27 ID:QI9NKinj
>256は禿同なんだが、そういったことを現状のコミュニティベースの
開発スタイルで、どう実現するのかを小一時間問いつめたい、
じゃなかった、考えたい。
259login:Penguin:02/01/01 00:27 ID:9SI2mqTf
名前付きパイプをselectで監視しているのですが、

パイプに入力が無いにもかかわらず、
すぐに、
selectが戻り値 1 でリターンして、
(パイプについてFD_ISSETも正を返す。)
当然ながら、パイプを読んでみても、何も入っていない。
260259:02/01/01 00:47 ID:9SI2mqTf
手元の本によると、
open(const char *path, O_RDONLY);
と非ブロッキングのフラグ無しで名前つきパイプをオープンした時、
何らかのプロセスが同じ名前つきパイプをオープンするまで、
このopen呼びだしは、ブロックする。

とあるのに、ブロックしない。

調子にのって最新のカーネルをいれたのが間違いだったようです。
261259:02/01/01 00:49 ID:9SI2mqTf
>と非ブロッキングのフラグ無しで名前つきパイプをオープンした時、

じゃなくて

読みだし専用かつ、非ブロッキングのフラグ無し
で名前つきパイプをオープンした時

でした。
262login:Penguin:02/01/09 19:10 ID:cGPnxeEf
261 の問題は解決したのだろうか?
こうして壁にぶち当たってそのままになっていると、
プログラミングが嫌いになっていって、プログラマ
候補生がまた一人逝ってしまうのだろうな。

ところで、パイプのノードはちゃんと作ったかい?
( mknod 使った?)
263login:Penguin:02/01/10 09:42 ID:KaV77Pvt
はい、
名前付きパイプは作りました。
入力がある時は、入力を得ることはできるのです。

でもselectがブロックしないんだったらselectの意味がないのではと。
264login:Penguin:02/01/10 12:29 ID:AYoOY4G0
私はブロックするプログラムは書かないので、なぜブロック
させたいのか分かりませんが、私の環境では open はブロック
します。また、select は相手側がオープンしていないとすぐに
リターンするそうです。
ls -l であなたの作ったノードに p がついていますか?
パイプのノードを作るときは
if( access( "path", F_OK ) ) mknod( "path", S_IFIFO | 0666, 0 );
のようにします。
265263:02/01/10 19:51 ID:KaV77Pvt
すいません。しょうもないミスでした。
mknod( "path", S_IFIFO | 0666, 0 );

mknod( "path", 0666, S_IFIFO);
としていました。
------
ところで、
非ブロッキングモードで開いた名前付きパイプをselectシステムコールで監視した時

他のプロセスが名前付きパイプを開く (selectはリターンしない)

他のプロセスが名前付きパイプに書き込む (selectがリターンして、パイプをreadすると、書きこんだバイト数を返す)

と、ここまではいいのですが、

他のプロセスがパイプを閉じて終了 (selectがリターン、パイプをreadすると0が返る)
この後, selectがブロックしなくなり、パイプへのreadも0を返すの繰り返しになってしまう。(結果システムの負荷が上がる)

ところが、別のプロセスが名前付きパイプを新たに開くと通常のブロックする動作に戻る。
-----

というわけで、readが0を返したら非ブロックモードで開いている名前付きパイプの、読み手側がパイプをクローズしたと解釈して、改めて名前付きパイプを開き直すという方法で、すべて問題が解決しました。
266263:02/01/11 18:43 ID:PgrWGniX
265の一番下の段落に書いた
「読みて側がパイプをクローズしたと解釈して…」

「書き手側がパイプをクローズしたと解釈して…」
の書き間違いです。

ソケットを監視してる時と、名前付きパイプを監視してる時とでは、
相手側がクローズしたときのselectの挙動が違うということが言いたかったわけです。
(ソケットだとreadが-1を返す。)

確かに名前付きパイプの場合、相手側がクローズしたとしても、
エラーではないから、readが-1でなくて0を返す方が自然だし、-1を返すとしたら本当のエラーと区別がつかない。
267login:Penguin:02/01/11 18:50 ID:BX1XovQQ
本当に? ソケットだと -1 になります?
私の記憶違いかなぁ、ソケットの切断確認は
read() == 0 でやってたと思ったのですが。
ブロックしてると違うのかな。
会社にいないので確認不能です。(スイマセン)
268login:Penguin:02/01/11 22:06 ID:p3D7ZwgC
>>267
俺の場合、「正常時、正の整数を返し、異常時0を返す関数」の
エラーチェックは、if(rval <= 0){} でやってるなぁ。
ドキュメントに書いてなくても負の値かえすかもしれないし、
自前の関数でも、後からエラーの種類によって振り分けたくなるかも
しれないし....

あと、>>265みたいなミスをなくすには、mkfifo(3)なんてのも
イイかもね。
269263:02/01/12 10:48 ID:+FMGgANk
>>267
すいません
やっぱりソケットでも0でした。

試してませんが、本にそう書いてありました。
だから、
266の下半分はウソなので見ないでください!
270login:Penguin:02/01/12 16:48 ID:3tBEAC3g
本に書いてあることが全て正しいとは限りません。
本当に信用できるのは、自分で検証したことだけです。
271Vackerナイスです。へへ:02/01/17 05:15 ID:7/zk0gL9
LinuxプログラミングならTcl/Tkつーのもありだろ?
『Tcl/Tk?Linux版HSPでしょ!おいそこ左舷前方弾幕薄いよ
なにやってんの!』とか煽れば?Win::HSP厨に。

つー事でTcl/TkのTipsな!な!なっ!
http://www.geocities.co.jp/SiliconValley-Oakland/1680/tcl_tk.html
http://www.sra.co.jp/people/haga/tcltk/index.html

まあ、俺としてはだ、Cやpascalに慣れてしまって調子こいてガンガン
programmingしてるわけだがTclなんぞと言う異質な構文の厨房言語に
かなり悩んでちょっと鬱気味だけどな。

お、なんだそこのテメエ!俺がスレ上げちゃ逝けねえのかよ!糞Win厨はひこん
でろこの糞アフオ糞アフオ糞アフォっっていうかスミマセン上げます。
272login:Penguin:02/01/17 05:23 ID:lWxVHxS6
>>271
テンション高いねぇ・・・・

あとHSPはナイスだ でもやっぱCとかで組んだ方がソースに愛着わくけど
273Vacker名椅子です。アフオッツ:02/01/17 05:42 ID:jxjoqQ1B
なんでHSPナイスなのよ.
HSP最高です!最高です!人生最高です!か?
あ、HSPが良いということではないのか.
274Vacker:02/01/17 05:43 ID:jxjoqQ1B
山崎には負けたくないage
275Vacker:02/01/17 08:16 ID:Ae+97PFN
#ラベル表示だゴラア
label .label1 -text "サウンドのテストです"

#ボタン使って音鳴らすぞハッキン!
button .button1 -text "sound 1" -command {
exec play /usr/share/sounds/login.wav
}

#なんだてめえエラーカマシテンジャねーよ!と言うことで
#/dev/nullにパイプ渡して尻隠し。ついでにバックグラウンドで実行。
button .button2 -text "sound 2" -command {
exec play /usr/share/sounds/shutdown1.wav >& /dev/null &
}

#ついでだからxmmsも起動しちゃっ足りして
button .button3 -text "mp3 music" -command {
exec xmms /home/mp3/music1.mp3 >& /dev/null
}

pack .label1 .button1 .button2 .button3 -fill both
276Vacker:02/01/17 08:19 ID:Ae+97PFN
ま、とりあえずTclでサウンド鳴らしてまるちめぢあ
Linuxでウハウハしとけ。
HSPだかんな。Tcl/Tkは。
277Vacker:02/01/17 08:37 ID:eTOBYTl2
おっと書き忘れた、275を実行するには275をファイルに
nantoka.tclて名前で保存してその後、

% wish nantoka.tcl

で実行するんだぞ厨房。あ、サウンドファイル無いってエラーが
出ら適当なwaveファイル使え、な。
278login:Penguin:02/01/17 23:36 ID:/YXIWgzo
保守あげ
279Vacker:02/01/18 04:33 ID:uD6vjZQi
Tclで文字を出力するのはだな、puts命令を使うんだ分かったか。コンソールから

$ tclsh

でインタプリタか始まるからな。始まると%記号が出るからな。
そこで、だ

% puts stdout "hello world イヤーン"

と入力してみろ。ツウインクルツインクルTclちゃんが命令を解読して""で
囲まれた文字列を表示するからな。どうだHelloWorldだコノヤロ!
280login:Penguin :02/01/18 05:15 ID:ZMYgA2qm
為になるスレ一覧

マルチスレッドプログラミング相談室
http://pc.2ch.net/test/read.cgi/tech/997345868/

UNIXプログラミング質問すれ
http://pc.2ch.net/test/read.cgi/tech/992057422/

ネットワークプログラミング相談室
http://pc.2ch.net/test/read.cgi/tech/1006258198/
281Vacker:02/01/18 05:26 ID:AbvlHbrB
プログラミング言語には変数と言うものがあるんだ。数学のxとかy
というもと同じだ。
Tclわな、変数は最初に定義してカラ使うんだぞ。例えばaという
変数を使いたければ、

set a 1024

という具合にすればいいんだ。このaと言う変数には1024と言う値が
入っている。値を見るには$記号を付け加えて、

puts stdout $a

とすればaという変数の中身が表示されるわけだ。どうだい!これで
立派なLinuxプログラマーになったみたいだろ?
282Vacker:02/01/19 15:01 ID:+kE4KKV+
どうだいFuckin!!Everyone!
HSPいや、Tclしてるか、ちくるをYO!

キーボードから数字や文字を入力するのはな、

% gets stdin a

とやるんだ。そうするとだな、変数aに入力された文字が保存されるってわけよ。
試しに

% puts $a

とやって変数の内容を見てみろ。

WooooW It's Cooool!やったぜ!ペンギンのクソッタレ!
これで俺も文字表示とキーボード入力が出来るようになっちまったぜ!
283Vacker:02/01/20 11:45 ID:dWvcz12w
Expressoinって知ってるか?式よ、式。Tclではな、計算はexpr命令で行なうんだ
ぜhack'in!!。例えばこんなだ。

expr 2 + 3

どうだ、なかなかファンキーだろ、え?
計算結果を変数にいれるときはだな、下のようにして[ ]記号で囲むんだ。

set a [ expr 5 + 1 ]

こうするとexpr命令の結果を変数aに代入できるって分けよ。
284Vacker:02/01/20 11:47 ID:dWvcz12w
じゃあexpr命令を使って計算プログラムを作っちゃおうぜ!まずは下のプログラムを
Editorか何かで入力してkunkun.tclと言うファイルに保存してくれ。

puts stdout "数字を入力するクーン"

puts stdout "a="
gets stdin a

puts stdout "b="
gets stdin b

puts stdout "足し算の結果は [ expr $a + $b ] なのよ クククnoクーン


そうしたら今度は tclsh kunkun.tcl とやってプログラムを実行するんだぜ!
おい、プログラムを実行してみろよ!まじかよ!クンクンが計算をしてくれるぜ!
なんてスペシャルフレンドリーな計算機なんだよ!何で俺のLinuxにクンクンがって感じだよな。
まるでポストペットのモモみたいじやねーかよ!

これでexpr命令をハックしたぜ!Fuckin!Baybe!
今日も一日ハイテンションできりぬけられそうだぜ!ハッキン!ハッキン!ハッキン!ハッキン!
ハッキン!ハッキン!ハッキン!ハッキン!ハッキン!ハッキン!ハッキン!ハッキン!
シャッッキーーーーーーン!!!
285login:Penguin:02/01/20 16:08 ID:dWps4DA0
>>284
け言語の人ですか?
286Vacker:02/01/23 09:57 ID:cqVEVDK1
Visual系プログラムってしってるか、え?
VisualBasicみたいにGUIを使ってプログラミングすることだよな。
たぶんそうだぜ。まあGRAY見たいなギター背負ってシャーウト!とか言ってる
プログラマーもVisual系プログラマーと言うけどな。

Tcl/TkでもGUIプログラムが出来るわけだが、簡単なのやってみようぜ!
まずはktermから、wishと入力してインタプリタを起動させてくれ。
そこで%プロンプトがでたら、

% tk_messageBox -title "hello tcl/tk" -message "hello tcl/tk world"

と入力するんだ。この命令は画面にメツセージボクースを表示するものさ。

ついでだから、ファイルダイアログも表示させてみよう。よくwindowsで見掛ける
やつだがtck/tkから簡単に呼び出せる。

% tk_getOpenFile

どうだい、簡単だろ?ファイルダイアログからのファイル名を変数に保存したければ
set filename [ tk_getOpenFile ]てやればいいわけよ。
287login:Penguin:02/01/29 02:12 ID:oEv2rpfL
age
288login:Penguin:02/01/29 03:19 ID:1Vrjex5N
vackerキモキモ
289login:Penguin:02/01/29 07:07 ID:uAr9UbEj
284タンが借金で終っちゃってるのはなんでだろう・・・)Oo。.('ー')
290login:Penguin:02/01/29 07:42 ID:ishXBJ4a
>>288
安い焼酎飲みすぎて悪酔いしてあのテンションなら頷けるが
しらふであれならチョト恐い
291login:Penguin:02/02/21 20:41 ID:B2i6ydgA
iptablesconfを育てないか?age
292login:Penguin:02/02/21 20:54 ID:7GLJZHsg
vackerタンつづけてちょ
293名無しさん@Emacs:02/02/22 00:55 ID:zwX/UbHV
このスレで初めて SDL というのを知りました。
http://www.geocities.co.jp./Berkeley/2093/driller.html
にあるドリラーを make しようとしたのですが、SDL_mixer.h がないと言われ
ます。検索してもありませんでした。

$ rpm -qa 'SDL*'
SDL-1.2.3-1
SDL_net-1.2.2-1
SDL_mixer-1.2.0-4
SDL-devel-1.2.3-1
SDL_image-1.2.0-3

SDL_mixer というのは入っているようなのですがこれではいけないのでしょう
か?
294login:Penguin:02/02/22 01:09 ID:zwX/UbHV
すみません。自己解決しました。
SDL_mixer-1.2.1-1
SDL_mixer-devel-1.2.1-1
を入れたら make できました。逝ってきます(鬱
295login:Penguin:02/02/22 17:21 ID:zxhEpi7c
cygwin で SDL-1.2.3.tar.gz をダウンロードして

$tar zxvf SDL-1.2.3.tar.gz
$cd SDL-1.2.3
$./configure; make; make install
$cp /usr/local/lib/SDL.dll /usr/local/bin

としたのですがテストプログラムがコンパイルできません。

checking for SDL - version >= 1.2.3... no
*** Could not run SDL test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means SDL was incorrectly installed
*** or that you have moved SDL since it was installed. In the latter case, you
*** may want to edit the sdl-config script: /usr/local/bin/sdl-config
configure: error: *** SDL version 1.2.3 not found!

と怒られます。どうしたらいいですか?
296login:Penguin:02/02/22 17:36 ID:o0GogGjF
>295

>The test program failed to compile or link.
>This usually means SDL was incorrectly installed

って書いてあるじゃん.

あと,make installってrootでやった?
297295:02/02/22 18:17 ID:zxhEpi7c
>>296
cygwin(win2000) なので root になる必要はないのですが。インストールはエ
ラーも出ないで終了しているので、パスが通ってなくて失敗しているのではな
いかと思うんですが違いますかね。

参考にしたページでは SDL.dll をパスの通っているところ(/usr/local/bin)
にコピーしろとあったのでコピーしました。test ディレクトリとか /usr/bin
とかにも置いてみたりしましたがだめでした。

ここで見つからないと言っているのは SDL.dll のことではないのでしょうか?

http://www.geocities.co.jp./Berkeley/2093/sdl.html
このページを参考にしました。「SDL-1.2.1 以降の WIndows の場合」の部分。
298Vacker:02/02/22 21:48 ID:wGYDaqZ+
おっ、Linuxプログラマー板も熱くなってきたじゃねーか。
よし292よ、続けるからぜひHackerJapanにVackerの記事載せろとリクエストの
メール書いちゃったりしてくれ。
299Vacker:02/02/22 22:25 ID:dyoD2KOO
それよりもよ292よ、ちょっと聞いてくれよ。俺こないだモデムのハードウェア
をハッキン!してたんだよ。そしたらよ、電源コード反対に繋げちゃってさ、
モデムがきゅい〜〜んとか唸っちゃったりしちゃってんのよ。そんでさドカンっていう
音と共に雷がフラッシュして目の前が激しく明るくなったんだよな。
やっぱり寝起きから「あぅ・・・うぉー朝だぜ、糞とションベンのまえに2chだ!」とか
いって2chしようとしちゃいけないよな。寝ぼけたまま2chしちゃ危ないぜ。
まぁ、そういうわけで292よ、これからも激しくハッキン!してくれ。
300login:Penguin:02/02/23 01:52 ID:wm3gs1fm
300get
301login:Penguin:02/02/23 02:56 ID:ZkGoDslu
>>295
「どんなエラーが起こったかは、config.logを読め」ってかいてあるでしょ。
読んでみた?意味がわかんなかったら、config.logの内容かきな。
# つーか、すれ違いだし、板違いだけど...
302292:02/02/25 00:08 ID:GwZlFUMG
Vackerタンもうちょっと聞きたよー、つづきをキボンヌ(マジ
303295:02/02/25 13:40 ID:LEc6DJSN
>>301
長くなってしまって申し訳ないのですが、config.log の途中から書きます。
README.Win32 には cross-configure.sh , cross-make.sh を使うように書い
てあったのですが、そのせいでしょうか? でもこれだと SDL 自体がインストー
ルできなかったので...違うかな。

configure:2159: checking for SDL - version >= 1.2.3
configure:2244: gcc -o conftest -g -O2 -I/usr/local/include -I/usr/local/include/SDL -Dmain=SDL_main -I/usr/include/mingw -DWIN32 -Uunix conftest.c -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows -mno-cygwin 1>&5
/usr/local/lib/libSDLmain.a(SDL_main.o.b): In function `ParseCommandLine':
/usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2183 "configure"
#include "confdefs.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "SDL.h"

char*
my_strdup (char *str)
{
char *new_str;

if (str)
{
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str);
}
else
new_str = NULL;

return new_str;
}
304295:02/02/25 13:41 ID:LEc6DJSN
続きです。

int main (int argc, char *argv[])
{
int major, minor, micro;
char *tmp_version;

/* This hangs on some systems (?)
system ("touch conf.sdltest");
*/
{ FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }

/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("1.2.3");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
printf("%s, bad version string\n", "1.2.3");
exit(1);
}

if ((1 > major) ||
((1 == major) && (2 > minor)) ||
((1 == major) && (2 == minor) && (3 >= micro)))
{
return 0;
}
else
{
printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", 1, 2, 3);
printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
printf("*** best to upgrade to the required version.\n");
printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
printf("*** to point to the correct copy of sdl-config, and remove the file\n");
printf("*** config.cache before re-running configure\n");
return 1;
}
}


configure:2293: gcc -o conftest -g -O2 -I/usr/local/include -I/usr/local/include/SDL -Dmain=SDL_main -I/usr/include/mingw -DWIN32 -Uunix conftest.c -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows -mno-cygwin 1>&5
/usr/local/lib/libSDLmain.a(SDL_main.o.b): In function `ParseCommandLine':
/usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
/usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2278 "configure"
#include "confdefs.h"

#include <stdio.h>
#include "SDL.h"

int main(int argc, char *argv[])
{ return 0; }
#undef main
#define main K_and_R_C_main

int main() {
return 0;
; return 0; }
305295:02/02/25 13:43 ID:LEc6DJSN
長すぎてうざいですね。。。。
ごめんなさい。
306login:Penguin:02/02/25 20:14 ID:yeNNgtGX
>>303
つーか、なめらかに板違いだなぉぃ。
UNIX板のcygwinスレかwindows板か
ム板の範疇だと思うが……

それよりか、winのコンパイル済のSDL32.dllじゃだめなんか?
307login:Penguin:02/02/25 22:11 ID:bMbnSl5L
>>304
> /usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
> /usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'
> /usr/include/mingw/ctype.h:141: undefined reference to `_imp____mb_cur_max_dll'
> /usr/include/mingw/ctype.h:141: undefined reference to `_imp___pctype_dll'

どう見てもcygwin固有の問題なんですが、、、
どうしてもLinux板でつづけたいですか?

308login:Penguin:02/02/25 22:26 ID:r8cdj1bz
>>306-307
こらこら、せっかく来てくれたんだぞ。

>>304
Linuxをインストールすると解決するYo!

# いや、まぢで。
# Windows領域にインストールできるデストリビューションも増えてきたしさ
309login:Penguin:02/02/26 00:58 ID:UwxM9YJu
シェルスクリプト内でパイプ処理をしている最中に
条件式を埋め込みたいんだけど、どうもうまくいきません。

#!/bin/sh
grep hoge hoge.log | ここで$1が数字なら tail -n 数字、$1が数字以外なら cat | ・・・

というようなのをずらずらと書きたいんですけど
どうすればいいでしょうか?
310309:02/02/26 00:59 ID:UwxM9YJu
シェルはbashです
311login:Penguin:02/02/26 01:09 ID:kWRylkzw
hoge.logのサイズにもよるけど、
for i in `grep hoge hoge.log`
do
if $i...
....
fi
done

じゃダメなのか?
312331:02/02/26 01:16 ID:kWRylkzw
あ、そういう問題じゃないのか。
grep hoge hoge.log | (if .... fi) | .....
ではどーですか?
313309:02/02/26 01:21 ID:UwxM9YJu
例が悪すぎました。すみません。具体的にやりたい処理を書きます。

$1 がgzファイルなら zcat、普通のテキストなら cat で表示し
$2 でgrepして
$3 が数字で指定してあればtail -n 数字、そうでなければそのまま

というフィルタリングを行いたいのです。
zcat $1 または cat $1 | grep $2 | tail -n $3 または cat
という処理を書きたいのですが・・・

なるべくtmpファイルは途中で生成したくないと考えてます。
314login:Penguin:02/02/26 01:44 ID:HpGR26aj
>>313 最初っからそういってくりぃ(;´д`)
echo $1|grep -e 'gz$' > /dev/null
if [ $? -eq 0 ]; then
CAT=zcat
else
CAT=cat
fi

if [ "$3" = "" ] ; then
TAIL="tail -n $3"
else
TAIL='cat'
fi

$CAT $1 | grep $2 | $TAIL
315309:02/02/26 02:18 ID:UwxM9YJu
>>314
おお!
変数もコマンドになる・・・

目からうろこです。なるほど!
316login:Penguin:02/03/02 17:23 ID:252oT5b1
ターボから出てるiアプリ作成ツールって使えますか?
503is買おうか迷ってるんですが・・。
317login:Penguin:02/03/02 17:56 ID:aAidBm2I
OSXのプログラミングしろ、ほげ
318キタ:02/03/03 18:48 ID:TIN10b/M
#include <stdio.h>

int main(int a, char *b[])
{
int i;
char *kita[7] = {
"(゚∀゚)",
"( ゚∀)",
"(  ゚)",
"(  )",
"(  )",
"(゚  )",
"(∀゚ )"
};

while (1) {
for (i = 0; i < 7; i++) {
printf(" キタ━━━%s━━━!!!!!\n%cM", kita[i], 27);
usleep(200000);
}
}
}
319login:Penguin :02/03/03 18:53 ID:zGw1I9Gs
#!/usr/bin/perl -w        
use strict;
                      $_='ev
                    al("seek\040D
      ATA,0,         0;");foreach(1..2)
    {<DATA>;}my        @camel1hump;my$camel;
 my$Camel ;while(       <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary      1=split(//);if(defined($
_=<DATA>)){@camel1hum    p=split(//);}while(@dromeda
ry1){my$camel1hump=0   ;my$CAMEL=3;if(defined($_=shif
    t(@dromedary1  ))&&/\S/){$camel1hump+=1<<$CAMEL;}
    $CAMEL--;if(d  efined($_=shift(@dromedary1))&&/\S/){
   $camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift(
   @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
   defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
   L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
   ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
   camel1hump){chomp;$Camel=$_;tr/LJF7\173\175`\047/\061\062\063
   45678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;print"$_\040
    $Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y/LJF7\173\17
    5`\047/12345678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;p
     rint"\040$_$Camel\n";}#japh-Erudil';;s;\s*;;g;;eval;  eval
      ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s$\s*$$g;(  );;s
       ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__  \124
        \1  50\145\040\165\163\145\040\157\1 46\040\1 41\0
          40\143\141 \155\145\1 54\040\1  51\155\ 141
          \147\145\0 40\151\156 \040\141  \163\16 3\
           157\143\  151\141\16 4\151\1   57\156
           \040\167 \151\164\1  50\040\   120\1
           45\162\  154\040\15  1\163\   040\14
           1\040\1  64\162\1   41\144    \145\
           155\14  1\162\    153\04    0\157
           \146\   040\11   7\047\     122\1
           45\15   1\154\1 54\171     \040
           \046\     012\101\16      3\16
           3\15      7\143\15       1\14
           1\16      4\145\163      \054
           \040      \111\156\14     3\056
          \040\     125\163\145\14     4\040\
          167\1    51\164\1 50\0     40\160\
         145\162               \155\151
        \163\163                \151\1
       57\156\056

# camel code, copyright 2000 by Stephen B. Jenkins
# The use of a camel image with the topic of Perl
# is a trademark of O'Reilly & Associates, Inc.
# Used with permission.
320login:Penguin:02/03/03 22:24 ID:9bkrojNd
>>318
ワロタ

>>319
すげ〜
321Vacker:02/03/09 00:58 ID:pgqd7Ztz
今日はクワータになっちゃうからな

「せいなるかねのねが〜ひび〜くこおろおにぃ〜
さぁいはてぇ〜のまぁちぃなぁみぃを〜ゆめ〜にみるぅ〜
てぇんしぃ〜がそぅらかぁら〜お〜りてきぃて
はぁるかぁくぅるぅまぁえにぃ〜ほほぅえみぃぅをくぅれぇたぁ〜
ここころおれないようにまぁけないように
ろぉんりぃね〜
しぃろぉいこぉいびぃとぉが〜まぁっている〜
ぅだかぁらぁゆぅ
めときぼうをむねにいだぃて

322login:Penguin:02/03/09 01:03 ID:vpqi9f9X
>>321
悪いが板ちがい。
プログラミングねたにしてくれ
323 :02/03/09 05:06 ID:4+C7ROZ+
板違いと思うのですが質問です。
1〜9、a〜zの文字を使って
4文字の英数字をランダムに生成するのは
どのようにすればよいのでしょうか?
324login:Penguin:02/03/09 09:55 ID:4PDxIO92
宿題は、自分でやるか、じっくり質問できる友達を作っとくかするモンだぞー

1: 1〜9、a〜zを格納した配列を用意
2: 9+26=35なので0〜34の乱数を発生
3: これを配列のインデックスににして、文字を決定
4: 2-3を4回繰り返し、文字列として結合
include <stdio.h>
char table[35]="123456789abcdefghijklmnopqrstuvwxyz";
char randstr[5];
FILE *fp;
int i;
int tmp;

if((fp=fopen("/dev/random","r"))==NULL){perror("/dev/random");exit(1);}
for(i=0;i<4;i++){
 tmp = fgetc(fp);
 randstr[i] = table[tmp%35];
}
randstr[4]=0;
fclose(fp);
325login:Penguin:02/03/09 09:56 ID:4PDxIO92
あ。includeの前に#ぬけた。
あと、全角スペースいれてるから注意して。
326login:Penguin:02/03/09 11:39 ID:3VUFTEsN
>318
ウケタ。
二次元配列使ってモナーの「ワケワカランワケデモナイ」
とかもできそうだね。
327login:Penguin:02/03/09 12:52 ID:2F0vZ9RW
2chAAlibでもつくろーかと思ったけど、
用途が鬱なものしか思い浮かばないから、やめた...
UNIX/Linux板がAAの嵐になるのもアレだし。
328 :02/03/09 23:51 ID:4+C7ROZ+
>>324
お手数お掛けしました。
有難う御座います。
329login:Penguin:02/03/16 07:01 ID:8WW1ZYNb
ふう、半年かかってやっとcursesで色指定できるようになったぜ。(`_';)
330login:Penguin:02/03/16 16:36 ID:DzswhZiE
>>329
赤飯炊いてください
331login:Penguin:02/03/17 00:58 ID:oL8hr3lg
>>326
作っても良いが固定ピッチ端末じゃAAがきれいに見えないのが辛い。
332Vacker:02/03/17 02:32 ID:+a/Oz7wR
きみたち!君たちも一緒にホームレスハッカーしようぜ!

ホームレスハッカー「ラモー」
http://www.hotwired.co.jp/news/news/culture/story/20020308204.html
333デフォルトの名無しさん:02/03/17 06:38 ID:rKqNVMk6
334Vacker:02/03/17 07:16 ID:Ve6CaAn4
さぁ、きみたちもラモーに続いてyunyunとかvladimirになってくれ。
335login:Penguin:02/03/17 07:52 ID:V4P8Ci8U
TurboLinux7のFTP版でJavaの開発されているかたいますか?

フォントの設定を行ったにもかかわらず
Cannot convert string "-ryobi-minchol-...." to type FontStruct
と、コンソールにエラーが出てGUIでは文字化けしてしまいます
どうしたら良いでしょうか?
FTP版だとダメなんでしょうか?
ちなみに、JustSystemのHPに載っている設定方法を試しました
お願いします助けてください
336 :02/03/17 09:44 ID:gOZA0UlR
そのフォントTurboLinux7製品版にしか入ってねーだろ。
337login:Penguin:02/03/17 09:47 ID:K5wvpRZW
>>336
ええ、ですからフォントの参照先を変えたいんですけど
どうすればよいのかわからなくって・・・
338329:02/03/18 18:12 ID:hViV/2q5
更にcursesでファンクションキー使えるようになったよ。 viのクローンでも作るわ。
339login:Penguin:02/03/18 21:22 ID:YVsKkvN6
>>338
残念だけど外出
http://pc.2ch.net/test/read.cgi/unix/1008261818/

対抗馬になるか改良するかどっちかですね。
がんばって下さい。
340login:Penguin:02/03/19 00:50 ID:zxZSSbSP
なぜviクローンでファンクションキー?
341login:Penguin:02/03/19 01:33 ID:3nGAD5if
Vim で使えるからじゃない?
342login:Penguin:02/03/19 03:47 ID:zxZSSbSP
世界時計

usage: wclock [-12〜+12]

日本の場合-9


% cat wclock
#!/bin/sh

if [ "$1" != "" ]; then
TZ=XXX$1
export TZ
echo " TZ=$TZ"
fi

echo " +=====================+"
while :
do
date +" | %Y/%m/%d %H:%M:%S |"
echo " +=====================+"
sleep 1
echo -e "\033M\033M\033M"
done
343329:02/03/19 04:29 ID:1mJ1+9mb
ttp://www.maid3.ne.jp/~namiii/cgi-bin/image/iiup927.jpg cursesでお絵書きするの作ったんだけど誰かいる?
344名無しさん@Emacs:02/03/19 08:47 ID:vx5jf9AK
>>343
キボ-ン
345329:02/03/19 16:03 ID:1mJ1+9mb
http://mushoku.tripod.co.jp/ccc.c
要らないと思うけどアップします。
$ gcc ccc.c -o ccc -lcurses
でコンパイルして、操作法は
方向キーで移動、F1〜F8キーで色を変えて、
その他の普通のキーで文字を書きます。
そして'Q'で終了します。
みんなでお絵書きしましょう。
346login:Penguin:02/03/19 16:16 ID:ezuzc5ri
>>329
rxvt はうまくいくけど kterm, Mlterm では
ファンクションキーの取得が出来ていない模様。
347344:02/03/19 22:13 ID:vx5jf9AK
>>345=329
確かにktermだとF1〜F4が効かないみたいっす。
# ^Oとそれぞれ P,Q,R,S が入力されちゃう
F5〜F8は効くみたいだけど。
rxvtは入れてないから分かんないっす。
348329:02/03/20 02:54 ID:17hsvpxp
あ、おふたりとも試していただいてありがとうございます。 かくいう俺はKONの環境でやっています。 ぬー、まだまだ修行が足りないようですね。 これを応用してcursesでゲーム作ろうと思っています。(噸座しなければいいな・・
349login:Penguin:02/03/20 05:28 ID:14QD3U3P
TurboLinux7のFTP版でJavaの開発されているかたいますか?

フォントの設定を行ったにもかかわらず
Cannot convert string "-ryobi-minchol-...." to type FontStruct
と、コンソールにエラーが出てGUIでは文字化けしてしまいます
どうしたら良いでしょうか?
FTP版だとダメなんでしょうか?
ちなみに、JustSystemのHPに載っている設定方法を試しました
お願いします助けてください
フォントの参照先を変えたいんですけど
どうすればよいのかわからなくって・・・
350login:Penguin:02/03/20 16:36 ID:ZXZH8grQ
>349
とりあえずローマ字ですれ。あとはWinでswingプログラミンゴすれ。
351login:Penguin:02/03/20 18:27 ID:FC6U4/jB
>>349
まあ、それでもいいんですけどね
352login:Penguin:02/03/20 18:30 ID:hEleuR04
こんなの見つけた。
マルチプラットホームらしい。

ttp://www.widestudio.org/

ガイシュツ?
353login:Penguin:02/03/20 19:43 ID:RZu+6gFB
>>352 ゆーめーです
354login:Penguin:02/03/20 23:28 ID:qC/inkUP
>>348
cursesつかってアクションゲームはやめとけ。
俺は、音ゲーつくろうとして、悲しい思いをした(w
355login:Penguin:02/03/21 02:45 ID:5/+xRgx9
とりあえずインストールしてみたが、何が出来るのかさっぱりわからん
356login:Penguin:02/03/21 02:58 ID:9pmYpm5X
>>355 何をインストしたの?
357login:Penguin:02/03/21 03:14 ID:AiXx6DVL
>>356
widestudioじゃない?

>>355
漏れもインストールしてみた。
Win版だけど…

とりあえず。helpでも読むかね…
ってこれg++やん。。。
コンパイラとリンカをgccに換えれば良いのかな…(ドキドキ
358348:02/03/27 15:54 ID:kfhea9b4
>>354
音ゲーってことはタイミングよくキーを押させるんですよね?
自分はgetch()関数しか知らないのですが、これでは
キーを押すまで全てが待ってしまいます。
なんかいい方法ないでしょうか?
359login:Penguin:02/03/27 18:42 ID:qRMua0io
そういうのは普通 select で見張るんじゃないか。
360login:Penguin:02/03/27 23:40 ID:Md2CuLe+
しかし、都度都度入力バッファをクリアしないと
先行入力が効いてしまいそうな感じ...(BASICのINKEY$みたく)
実行速度が速いならだいじょうぶか(でもキーリピートが...)

INPにあたるものは無理かな(curses組んだことないので、なんとも)
361login:Penguin:02/03/28 20:45 ID:a7UA/nCo
>360
先行入力なんて全然恐くないと思うが。
キーリピートくらいかかっても全然キーバッファには
たまらないと思う。どうしても必要なら2回目以降の
入力は単にread()して捨てればいいし。
362login:Penguin:02/03/30 01:51 ID:mpZbUyZ2
>>361
curses使ってるときは、selectはダメでわ?

>>360
おとげーもどき作ったときのソースは、消しちゃってた。
当時のとは別だけど、「たしかこんな感じだったよなー」っての書いたYO!
363login:Penguin:02/03/30 01:59 ID:mpZbUyZ2
http://members.tripod.co.jp/kt_i/inputdemo.c.gz
はい。
inputdemo.cは、コメントが多めに入ってる。
そんかわり、cursesによる表示内容は少なめ、これ。

'q'の入力で終了っす。
364362:02/03/30 02:03 ID:92twwQN2
なんか>>362のレスがヘンなとこへ向きまくりでスマソ。
s/361/359/
s/360/358/っす。
365login:Penguin:02/03/30 19:36 ID:dcJw2Jul
inputdemo.c.gzが解凍できません。ネタじゃないです ヘタレですみません。
366login:Penguin:02/03/30 19:58 ID:bTREfqd2
ありゃ、まぢすか?
gunzip inputdemo.c.gz

inputdemo.c
ができませんか?

それでダメなら、とりあえず、
less inputdemo.c.gz
してみて下さい。(ブラウザが、勝手に展開してるのかも)
もし、htmlヘッダみたいなの見えちゃったら、教えて下さいな。
対策考えるです。
これから出かけるんで、失礼。


367login:Penguin:02/03/30 22:36 ID:dcJw2Jul
あ、できました。ちょっと時間かけて読んでみます。 ありがとう!kt_iさん
368366:02/03/30 23:36 ID:JPI70+38
ただいま。
>>367
よかったよかった。
んで、コメント多めに入れたつもりですけど、わかりにくいと思うんで、
誰でも何でも聞いて下さい。
あと、あまり普通のやり方じゃないかもしれないですし、問題とか
気づいた人、教えてください。煽りも歓迎。勉強させてくださいな。
369login:Penguin:02/04/05 18:42 ID:rMAy0SP7
開発環境も充実してきたけど皆どんなの使ってる?
自分は未だにviだけどもっと良い環境にしたい..
emacsの方が良いのかな.
370おむこさん志望 ◆GqCwfDSA :02/04/05 19:02 ID:BMn9N6Vz
>>369
エディタじゃないけど、devhelp(http://www.devhelp.net)はいいよ。
glibcとかgtk+のリファレンスマニュアルとして重宝してます。
371369:02/04/06 01:28 ID:carhLpBJ
今,sdldoc.csn.ul.ieとマニュアル見ながら勉強してるけどSDL結構良いね.
しかも簡単だし.
ビデオ関連とタイマー覚えたら簡単なゲーム作れそうだね.
基本ライブラリでbmp形式しか使えないのは痛いけど.(スプライト作れない?)

他にimlib使って端末上で2dでグラフィカルなゲームとかも作れそうだ.
372login:Penguin:02/04/06 01:33 ID:mH55Z1Cz
>>369
開発環境はSAMBA+TELNET使ってWINDOWS2000からエディット
コンパイルするのが一番効率的かと。
373login:Penguin:02/04/06 01:34 ID:uf9JfT1u
【コピペ1周年】同時多発オーダーIN吉野家【祭り】
(1)馴れ合い禁止。(一人で来る事。同伴禁止:いても知らぬ顔)
(2)「大盛りねぎだくギョク」を頼むこと。(並盛りねぎだくギョクも可)
(3)各会場ごとに指定時間厳守で現地集合。
(4)食ったら即帰る。
注)吉野家は家に帰るまでが吉野家です。
http://ex.2ch.net/test/read.cgi/entrance/1017935504/l50
http://www2.mnx.jp/carvancle/yoshigyu/ スレよりぬき等
374login:Penguin:02/04/06 02:19 ID:UVKoCCB3
>371
SDL_image ライブラリを使うと、各種画像ファイルを扱えるYO!
http://www.libsdl.org/projects/SDL_image/index.html

Windows だと、これが依存するライブラリも入れなきゃならんので大変っぽいっけど。
他にも SDL には便利なライブラリがあるから、チェックするといいと思われ。
375login:Penguin:02/04/06 08:59 ID:9GH2Tjkf
>>371

サーフェスに透過色指定できるから、透過色を決めておけばBMP
のピクセル列からスプライトも作れるよ。
376login:Penguin:02/04/06 10:00 ID:Zy9CkOgp
>>371
折れは、>>375に加えて、スプライト管理関数みたいなの
つくって管理してる。

put_sprite(surface1,x1,y1);
put_sprite(surface2,x2,y2);
.
.
.
flush_sprite();
こんな感じ。

put_sprite()でSDL_Surface *sp[]に並べていく。
flush_sprite()で実際にscreenに背景と重ねてから
SDL_BlitSurface()してSDL_Flip()する。
377login:Penguin:02/04/07 00:14 ID:YTBbGOwM
>>374
最初にそれはチェックしてましたがWinだと依存問題もあると辛い..
当分は基本ライブラリでなんとかやってみます.でもサンクスコ.

>>375,376
お陰でアニメーションも作れそうです,サンクス!

SDL_Flip使ってるって事はSDL_DOUBLEBUFとSDL_HWSURFACEをSDL_SetVideoModeでフラグ
で入れてるんだよね?
うちのはそれセットしてもSDL_VideoInfo()->hw_availableが1にならんからセットせず
にSDL_UpdateRect使ってるんだけど...


378login:Penguin:02/04/07 00:19 ID:iVBGD2/e
>>377
そういう状態ならSDL_Flip()は、
SDL_UpdateRect(screen,0,0,0,0);
と同じように振舞うはず。# とバカ一代の記事にかいてあった。

HWSURFACEとかがダメなのは、XFreeとSDLのコンパイル時の問題かな?
それとも、rootで実行するとOnになったりしない?
379login:Penguin:02/04/07 00:23 ID:iVBGD2/e
あと、SDL_Imageは、本当にラクだよ。
ImageMagickのconvertコマンドとかでフォーマット変えてからでも
いいけど、やっぱPNGとか直で使えるのはラク。
a_surface = Image_Load("filename.png");
だけで、フォーマット自動認識だし。
380login:Penguin:02/04/07 03:51 ID:cLABCWjB
荒らしに屈服しつつある格闘技板のバナー作ってくださる方募集中です。。
http://sports.2ch.net/test/read.cgi/k1/1017934497/l50
381login:Penguin:02/04/10 11:30 ID:Ps++pzgz
linuxにDelphi入れて使ってる奴いる?
すごく簡単らしいんだが..
382login:Penguin:02/04/10 13:06 ID:Ce64lgBn
Linux に Delphi?
ネタですか?マヂですか?
383login:Penguin:02/04/10 13:22 ID:1o5n4Lts
>>381
kylic?
384381:02/04/10 15:36 ID:Z/tOe28B
間違えた,s/Delphi/Kylix/で.

385login:Penguin:02/04/10 17:48 ID:h8Vq7GPe
Delphi とおんなじだよ〜ん。
Glade より20倍楽! Qt より(以下略
Object Pascal 覚えなくちゃいけんけどねぇ。
386login:Penguin:02/04/10 18:03 ID:Ce64lgBn
Kylix 新規プロジェクト作成かなんかでアドレス違反とか逝ってくるから消し
ちゃった。。。インストール失敗してたのかなぁ。。。
387login:Penguin:02/04/10 18:41 ID:h8Vq7GPe
まだまだ不安定だよね。 > Kylix
Ver3 くらいで安定するかな?
Ver1 をだましながら使ってた。RH7.1
388login:Penguin:02/04/11 00:20 ID:rg7n5KP/
>>387
そーなのかな?
Kylix2だけど、とりあえず変な落ちかたとかしたことないよ。
まだ使い込んでないけど。
389login:Penguin:02/04/11 00:21 ID:rg7n5KP/
ちなみに、Plamoで使ってる。
setup.shが変なとこで止まるから、ちょこっと手を加えて
インストールした。
390login:Penguin:02/04/13 05:49 ID:6ipwzKQ/
SDL_mixer.hに逃げてやっとWavを再生でけた.
SDL.hだけで音再生はサウンドプログラム未経験の自分には敷居が高すぎた.
391login:Penguin:02/04/13 12:25 ID:5DTUvdcX
>>390

SDLのサウンドは、バッファを自分で埋めたり初期設定が少し面倒そう
だけど実際にやってみると「waveのメモリイメージを鳴らす」程度なら
意外に簡単でした。「リアルタイムにサウンドバッファを埋めバッファ
を再生する」仕組みが最初から準備されている分、サウンドプログラミ
ングの入門にも適しているかも。
392login:Penguin:02/04/13 13:27 ID:5dKKtM8/
>>391
最初はSDL_LoadWAV使ってやろうと試みたが鳴らなかったよ.
その後,Mixerの存在を知り
Ada氏のページやhttp://www.kekkai.org/roger/sdlに行ってやっとできた.
原因を調べた所,イベントで音が鳴るようにしてたんだが
SDL_QUITイベントの所で処理しようとしたのが駄目だったよう.
SDL_KEYUPイベントの所で処理したならMixerライブラリ使って成功したから.
とりあえずもう一回やってみるよ.
393login:Penguin:02/04/14 12:11 ID:q7gMr4rA
>>391
うーん、単音ならいいんだけど、複数音をまぜようとすると、
やはり自前で音つくらないといけないし...
効果音として、A.wav を再生中、A.wavが再発声するときは
mixせずに再生バッファクリアしてA.wav再生、B.wavが
発声するときは、再生中のA.wavにB.wavをmixするようなときって、
どうやる?
ALSA直叩きしていたときは、再生バッファの明示的なクリアや
バッファ残り量を得ることができたらから、

1 A.wav再生中のバッファ残り量をはかる
2 A.wavの残り部分とB.wavをmix
3 再生中のバッファクリア
4 mix.wavを再生
みたいにやってたんだけど、SDLだけできるかな。
やっぱり、サウンド管理用のスレッドをわけないと厳しい?

# SDL_Mixer使って、
# 同じチャンネルで発声→バッファクリア
# 別チャンネルで発声→自動mix
# で幸せ状態なんだけどね。
394login:Penguin:02/04/17 17:26 ID:AZ3pwp4s
(n)cursesの質問

printw()系の関数って横幅がウインドウに納まらなかったときは右端で
折り返すけど,日本語(2バイト文字と呼ぶのが正しい?)の1バイト目が
丁度右端に来たときも,何も考えずに2バイト目を次行に送って文字化け
する.なにか回避方法ってある?

printw()以外にもnewwin()で作ったウインドウが日本語に重なると
文字化けするよな…….

Laser5 Linux7.2使ってます.関係ないと思うけど…….
395login:Penguin:02/04/17 23:34 ID:Jy3zu4ia
うちのncursesのmanには、
The following EXTENDED XSI Curses
calls in support of wide (multibyte) characters are not
yet implemented:
とかかいてあるけど...
現状だと、単に2byte文字が通るだけであって、いろんな面倒は
自前でみてあげないといけなさそうだねぇ。
396394:02/04/23 20:57 ID:Gza+0AGc
>395 しょぼーん.やっぱそうなのか・・・

ところで日本男児Linuxer諸兄は,コンソール指向(ってなんだ)の
プログラム組むとき,どんなライブラリ使ってるの? 教えてちょ.

できれば
・ダイアログ
・メニュー
・ボタン
とかのありがちな処理ができるライブラリがあればいいんだけど・・・
394の質問も,ダイアログを実装するためのものです・・・
397login:Penguin:02/04/23 22:19 ID:2oWGHR/n
うーん、コンソールでダイアログ使わないなぁ。
dialog系のコマンド使ってshellscriptってのはダメ?
いろいろ派生物があるみたい>dialog。
中には、日本語通るのもきっとあるだろ。

折れは、bashでread 使ったものにするか、Xdialog使うなぁ。
# ruby使ってるときも、Xdialogは便利。
398login:Penguin:02/04/23 23:35 ID:zzZ2k7Bu
あげとこう。
399login:Penguin:02/04/24 06:41 ID:xMehvO0d
X windowで半透明の窓はつくれますか?
400login:Penguin:02/04/24 09:52 ID:VsqRyC8Y
>>339
「つくれるかどうか」でいったら、「つくれる」。
でもX11の機能としては、無い。自前で実装か、ライブラリさがさないと
だめだと思う。

Etermのソースでも漁ってください。
401login:Penguin:02/04/24 11:06 ID:F5G260Df
>400
レンダー拡張は?
402login:Penguin:02/04/24 12:42 ID:m+3baTMC
>>394
cursesで改行をさせるようなプログラムって多用されてるんですか?
やるんなら事前に調整してaddstrとかaddchかな.

ダイアログ出したいっていうのはw3mみたいな事やりたいんですか?
それならw3mのmlが参考になるかも.
403394:02/04/24 17:46 ID:Y8k1KMwG
>>397 dialogいいっスね.しかし開発言語がC++なんスよ.というか
C++の勉強のために実用を兼ねてコンソールのアプリを作ってみようと
思いまして.

>402 addstrって……たとえば,新規ウインドウが掛かる部分(の日本語
の2バイト目)を空白文字とかで潰しておくとか?

 イメージ的には「日本語編集可能なテキストエディタで,画面のまん
中に『保存しますか? [Y/n]』みたいなダイアログを出す」ということ
を考えています.つまりどの位置に日本語が来るかは不定,と.ついで
に保存する文字/改行コードを指定するラジオボタンとかもあるといい
かなー.

 あと,w3mでダイアログってありましたっけ?? [o]とかだと全画面
が切り替わってしまうので(実装的にはこのほうが楽)…….
404394:02/04/24 18:00 ID:Y8k1KMwG
あ,w3mのソース見てたらマウス右クリした時のメニューをmvaddstrで
しこしこ書いていた……(menu.c).no mouseでコンパイルしてたので
気付かなかった(汗).

これ参考にしてみます.
405400:02/04/24 21:08 ID:ujxu+X0b
>>401
たのむから、「レンダー拡張」とかいう「おれさま用語」をつかわんでくれ。
http://www.google.co.jp/search?q=%83%8C%83%93%83_%81%5B%8Ag%92%A3&hl=ja&lr=

どういう機能をいってるんだ?
406login:Penguin:02/04/24 21:53 ID:cUx0CTWk
407400:02/04/24 22:30 ID:ci3ObMz/
>>406
あ、折れはてっきり399=401かと思ってた。

折れが「自前でどーにかしる!」っていったから、
「X Rendering Extentionでどーよ?」ってつっこんでくれたんだね。
さんくす。

# つーか、今までDRIと同じものかとおもってたよ... > RENDER拡張
# 逝ってくる...
408400:02/04/24 23:27 ID:jSngFYFK
反省により、リソース情報。
http://www.eax.com/render/

うーん、What is な文章は多いけど、HowToは少ないな...
409暇潰し〜:02/04/25 00:37 ID:+hViL74o
/*
* 連打測定ソフト:レンダ君
* 使い方: command time
* 10秒毎にラップタイムを表示します
* -lcursesつきでコンパイルして下さい
*/

#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <curses.h>
#include <unistd.h>

static int wait_type(void);
int main(int ac, char **av)
{
int retval;
struct timeval now = {0, 0};
struct timeval start = {0, 0};
int c, i, t, rap;
int timelimit= atoi(av[1]);
int rapt=-1;

c=i=t=rap=0;
system("xset r off"); initscr(); cbreak(); noecho();
getch();
gettimeofday(&start, NULL);
mvprintw(1,0, "数:%d", ++i);
while (t != timelimit) {
retval = wait_type();
if(retval) { getch(); mvprintw(1,0, "数:%d", ++i); }
gettimeofday(&now, NULL);
c = (now.tv_usec >= start.tv_usec) ? 0 : -1;
t = now.tv_sec - start.tv_sec + c;
if (t % 10 == 0 && rapt != t && t) {
mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap); rap=i; rapt=t;
}
mvprintw(0, 0, "time:%02d", t);
refresh();
}
if (t % 10 == 0 && rapt != t) mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap);
mvprintw(0, 0, "time:%02d", t);
mvprintw(t/10+4, 0, "type 'q' to quit");
refresh();
while(getch() != 'q') ;
clear(); endwin(); system("xset r on"); exit(1);
}

static int wait_type(void)
{

fd_set rfds;
struct timeval tv = {0, 1000};

FD_ZERO (&rfds);
FD_SET (0, &rfds);
return select (1, &rfds, NULL, NULL, &tv);
}
410いきなりsegfくらいましたが:02/04/25 00:45 ID:Lc1Q/pwH
うーん、argcくらい見てくれ....
(;-;)
でも、単純でもおもしろかったり(笑
411login:Penguin:02/04/25 13:09 ID:N7r3K3Uc
これキーリピートきかないようにするにはどこいぢったらいいのだ?
412login:Penguin:02/04/25 14:05 ID:1gvkucKX
キーリピートはsystem("xset r off");の所でoffにしてますよ.
最後system("xset r on"); で終了時にonになります.
これは指の筋肉増強の為に作りました.

昔のシュウォッチみたいなもんですね.
413login:Penguin:02/04/25 18:50 ID:N7r3K3Uc
>>412
あれ?cygwinだからかな?キーリピートきいてるの。。
414つっこんでみる:02/04/27 11:13 ID:HAxrAQOO
>>413
もしもし?ここはLinux板ですが?(わ
415VackerVT_DEFAULT_TAG_STRING:02/05/01 09:48 ID:SXVBzGFf
きみたち。tclしているかい?
所で割き程、エロ画像を見るためのtclプログラム。なずけて
"エロエクスプローラ"と言うものを作って見た。
君達、tclもイケルゼ。

ここからダウンロードしたら、
http://cgi.din.or.jp/~behemoth/cgi-bin/img-box/img20020501094024.tar

名前をeexplorer.tar.gz にかえて、

tar -xvzf eexplorer.tar.gz

とやって、wish ero.tclだかんな。
416login:Penguin:02/05/01 10:07 ID:KFBqztXK
へぇ、tclってこんな事できるんだ。
おもろいね。
417Vacker:02/05/02 05:49 ID:t8zab81K
tclでテキストエヂターを作ってみようぜ。
まずは、wishと打って、tclのインタプリタを起動しよう。
そうしたら、

text .tx0

と入力してtextウイジットを作ろうぜ。
まあ、ウイジットって言うよりはWindows的に言えばオブジェクト
って呼んでもいいな。
オブジェクトが出来たら、wishが作ったウインドウに張り付け
鳴きゃ行けないよな。そこで、

pack .tx0

とするのさ。どうだい、簡単にエヂターが作れただろ?
418Vacker:02/05/02 05:50 ID:t8zab81K
tclで作ったエヂターで日本語を入力するには、[Ctrl]+[¥]キー
を押せば入力できるはずさ。[Ctrl]+[o]でoffになる。
この辺りはmuleとおんなじさ。
419login:Penguin:02/05/28 13:25 ID:9EabqzpY
request_irq() の第3引数ですが、
SA_SHIRQを指定した場合、同じIRQを共有するドライバは
全てSA_INTERRUPT付きか全てSA_INTERRUPT無しでないといかんと
ゆーよーな話を小耳に挟んだんですが、何かまずい事情があるんでしょうか?

メーカー製のドライバを入れたらエラーでまくりでまともに動作しなかったので
いろいろ調べてみたらSA_INTERRUPT付きと無しのドライバが混じって
同じIRQを共有していたんで。
混ぜたらrequest_irq()が失敗してもよさそうなもんなのに
しっかり成功してのも謎です(kernel 2.2.20)。
420login:Penguin:02/05/28 14:03 ID:HcFeu/kp
>>419
俺もあまり詳しくはないけど、そのあたりは 2.0->2.2 で変わったyo。
SA_INTERRUPT はハンドラ走行中に割込み禁止するフラグだから、
IRQ の共有とは直接は関係ないんじゃないか?
arch/i386/kernel/irq.c あたりを読んでみればすっきりすると思われ。
421login:Penguin:02/06/01 19:01 ID:GchLRA1j
初期文字列指定付きのreadline風行入力ライブラリってありますか?

たとえば「ファイル名を変更する」時に行入力を使う場合、
元のファイル名を指定できなければならないんですが……

できればLGPLがいいなぁ
422login:Penguin:02/06/01 20:01 ID:3AZ8uYf0
tclでエディタできた。
423login:Penguin:02/06/01 22:54 ID:1Mas3Mij
>>421
俺はformライブラリを使った。
多分もっと良い方法もありそうだが、
そこは俺がへたれという事で…
424421:02/06/02 01:05 ID:uSBPGDj6
>423 サンクスコ。初めて聞いた・・・と思ったらインストール済みだった(赤帽
425login:Penguin:02/06/03 20:26 ID:pNev0Yh6
一つのソースでいろんなディストリに対応させたいんですが、どうやればいいんでしょうか?
言語は、Cです。できればLinuxだけではなくて、FreeBSDなどにも対応させたいのですが、
どうやったらいいでしょうか?
#ifdefでスイッチさせることはできるのでしょうか?
426login:Penguin:02/06/03 23:04 ID:cBxac/cn
>>425
GNU のソース何でも良いから見てみ。

#ifdef 使わなくても、共通ライブラリだけで作れるコードなら
余裕でコンパイル可能。
427login:Penguin:02/06/17 02:03 ID:4QW9IVdB
CプログラムからIFSを参照する方法ありますか。
getenvしようとしたけどNULL返ってくるんですけど。
428login:Penguin:02/06/20 01:23 ID:CphBQpNt
age
429login:Penguin:02/06/20 01:31 ID:PT5TL4d2
>>427
IFSは、普通は環境変数じゃなくてShell変数。
だから、あらかじめ明示的にexportしてやらないとダメじゃないかな?
430427:02/06/20 01:41 ID:CphBQpNt
そうですか。
shell変数は参照できないんですか…
ありがとうございました。
431login:Penguin:02/06/20 01:51 ID:PT5TL4d2
>>430
shell変数は、shellが個別に内部で持っている変数。
環境変数とはちがうYo!。
どうしても必要なら、export IFSしてから自作プログラムを
execするshell scriptを使えばいいと思う。
4321113:02/06/28 15:53 ID:SCOUjbnn
簡単なプログラム知りたいです
433login:Penguin:02/06/28 22:14 ID:l/6ZxngJ
>>432
ほれ、単純だけど、ちゃんと機能するcatだ。

#include <stdio.h>


void print_usage(char *me)
{
  fprintf(stderr,"Usage: %s filename\n",me);
  return;
}

int main(int argc, char **argv)
{
  FILE *fp;
  char buf[1024];
  int i;

  if(argc < 2){
      print_usage(argv[0]);
      exit(1);
  }
  for(i=1;i<argc;i++){
    fp = fopen(argv[i],"r");
    if(fp == NULL){
      perror(argv[i]);
      exit(1);
    }

    while(fgets(buf,1024,fp)){
      fputs(buf,stdout);
    }

    fclose(fp);
  }

  return 0;
}
434login:Penguin:02/06/29 11:55 ID:wHqTASTH
休日だぞ。
ずれなくするオナジナイやるから、おまいらも、なにかソースうぷしる!!


#!/usr/bin/env ruby
require 'jcode'
$KODE='e'

while gets do
a = $_.gsub(" "," ")
puts a.gsub("\t","  ")
end
435login:Penguin:02/06/30 22:19 ID:ljPApLVf
SDLついでにからage〜
436login:Penguin:02/07/01 08:34 ID:Rzg2qQoA
int *ip = new int[rand()];
delete ip; //(;´Д`)ハァハァ
437login:Penguin:02/07/01 13:08 ID:E87x/HNo
(´-`).。oO(rand()が0を返したらどうなるんだろう?)
438login:Penguin:02/07/01 15:45 ID:PPG3DaVN
つーか、配列の解放はdeleteでなくてdelete []だろ。
439login:Penguin:02/07/01 19:36 ID:bBNoWQJC
int *ip = new int(0);
delete[] ip; //(;´Д`)ハァハァ
440login:Penguin:02/07/03 22:09 ID:sv4PfTDc
422とか485ってドライバある?
441login:Penguin:02/07/03 23:31 ID:8md+2mdC
while(1){
 int *ip = new int(0);
 delete[] ip;
}//(;´Д`)ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
442login:Penguin:02/07/04 01:20 ID:gZhxNmSF
do {
cout<<"Jesu joy of man's desire(・∀・)"<<endl;
} while (false);
443login:Penguin:02/07/04 02:48 ID:YpwuZxrO
perl+cursesでプログラムを書きたいと思ったのですが PG板でもらったソースを実行しようとしたら Curses.pmが無いと言われたのでそのまま落として 先程のを実行したところ、エラーがいっぱい出ました。 .pmはちゃんとインストールしなければいけないのでしょうか?
444login:Penguin:02/07/05 12:25 ID:19Dq7F42
>>440
ふつーのserialじゃだめなのか?
445login:Penguin:02/07/05 21:03 ID:AzdKDIXl
おまいら、ソースを書け、そしてageるのじゃ!

>>443
どーゆーエラーが出たのか書かんと...
446login:Penguin:02/07/05 21:26 ID:WoeIQI0f
>>443
インストールしないと動かないだろ。
たまに動くモジュールもあるけど。
447OpenGLのテスト:02/07/05 21:44 ID:bgFWMrqb
#include <GL/glut.h>
#include <sys/time.h>
#include <stdlib.h>

#define QX 0.0 /* 球の初期位置のx座標値 */
#define QY 1.5 /* 球の初期位置のy座標値 */
#define QZ (-5.0) /* 球の初期位置のz座標値 */
#define G (-9.8) /* 重力加速度       */
#define V 25.0 /* 初速度         */
#define TSTEP 0.01 /* フレームごとの時間   */

struct timeval tv_now;
struct timeval tv_start; /* 開始時間 */
int nstep=0;


/*
* 地面を描く
*/
void myGround(double height)
{
static GLfloat ground[][4] = {
{ 0.6, 0.6, 0.6, 1.0 },



448OpenGLのテスト:02/07/05 21:45 ID:bgFWMrqb
{ 0.3, 0.3, 0.3, 1.0 }
};

int i, j;

glBegin(GL_QUADS);
glNormal3d(0.0, 1.0, 0.0); /* 法線ベクトルの設定 */
/* 10x10 の床 */
for (j = -5; j < 5; j++) {
for (i = -5; i < 5; i++) {
glMaterialfv(GL_FRONT, GL_DIFFUSE, ground[(i + j) & 1]);
/* タイル描画(1つ分) */
glVertex3d((GLdouble)i, height, (GLdouble)j);
glVertex3d((GLdouble)i, height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)j);
}
}
glEnd();
}

/*
* 画面表示
449OpenGLのテスト:02/07/05 21:46 ID:bgFWMrqb
*/
void display(void)
{
static GLfloat white[] = { 0.8, 0.8, 0.8, 1.0 }; /* 球の色 */
static GLfloat lightpos[] = { 3.0, 4.0, 5.0, 1.0 }; /* 光源の位置 */
static double px = QX, py = QY, pz = QZ; /* 球の位置 */


/* 画面クリア */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

/* モデルビュー変換行列の初期化 */
glLoadIdentity();

/* 光源の位置を設定 */
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);

/* 視点の移動(物体の方を奥に移す)*/
glTranslated(0.0, -QY, -10.0);

/* シーンの描画 */
myGround(0.0); /* 高さは0 */
450OpenGLのテスト:02/07/05 21:47 ID:bgFWMrqb

glTranslated(px, py, pz); /* px, py, pz に移動 */
glMaterialfv(GL_FRONT, GL_DIFFUSE, white);/* 拡散反射光強度の設定 */
glutSolidSphere(0.1, 16, 8); /* 球体 */

glutSwapBuffers();
pz = QZ + V*nstep*TSTEP;

printf("%f\n", pz);

}

void resize(int w, int h)
{
/* ウィンドウ全体をビューポートにする */
glViewport(0, 0, w, h);

/* 透視変換行列の指定 */
glMatrixMode(GL_PROJECTION);

/* 透視変換行列の初期化 */
glLoadIdentity();
gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0);
451OpenGLのテスト:02/07/05 21:47 ID:bgFWMrqb

/* モデルビュー変換行列の指定 */
glMatrixMode(GL_MODELVIEW);
}

void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_UP) {
/* 時刻調査 */
for (;;) {
gettimeofday(&tv_now, NULL);
if ((tv_now.tv_sec - tv_start.tv_sec)
+ (tv_now.tv_usec - tv_start.tv_usec)/1000000
>nstep*TSTEP) {
display();
nstep++;
}
if (nstep == 500){nstep=0;break;}
}
}
break;
452OpenGLのテスト:02/07/05 21:48 ID:bgFWMrqb
default:
break;
}
}

void keyboard(unsigned char key, int x, int y)
{
/* ESC か q をタイプしたら終了 */
if (key == '\033' || key == 'q') {
exit(0);
}
}

void init(void)
{
/* 初期設定 */
glClearColor(1.0, 1.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}

453OpenGLのテスト:02/07/05 21:48 ID:bgFWMrqb

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutReshapeFunc(resize);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
init();
glutMainLoop();
return 0;
}
454OpenGoLua:02/07/05 21:51 ID:bgFWMrqb
無駄に長いな、鬱。。

コンパイルは
gcc -o gltest gltest.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
などとやって下さい。
455login:Penguin:02/07/05 22:48 ID:dC/skGRi
どうでもいいけど、海外のMLの過去ログってけっこうわかりやすいから英語の勉強になるよね。
456login:Penguin:02/07/05 23:18 ID:7jOR47Ou
C言語の入門書を一通り終え、次はどの本で勉強しようか迷っています。
検索したところ、下の 3種類の本が見つかったのですが、
もっておられる方、書評をお聞かせいただけないでしょうか。
プログラミング Linux(アスキー)
http://www.linux.or.jp/bookreview/ProgrammingLinux.html
Linux プログラミング 例題で学ぶUNIXプログラミング環境のすべて(ソフトバンク)
http://www.linux.or.jp/bookreview/LinuxProgramming.html
例題で学ぶLinuxプログラミング GCCからRPMまでオープンソース・アプリケーション技術(ピアソン・エデュケーション)
http://www.ne.jp/asahi/yokohama/juk/LPBE/

上2つのブックレビューを見た感じでは、ソフトバンクの方が良いように思ったのですが…
できればなるべく易しいものが良いかな、と思っています。
457login:Penguin:02/07/05 23:31 ID:/Fjz3ZWL
the programming language C++ third edition なんかいいでっせ。
458login:Penguin:02/07/05 23:54 ID:1Jx6LzB6
>>456
とりあえず、ソフトバンクので困らないと思われ。
むずかしさは...まぁ、上二つはあまり変わらん。下は持っていない。
でも、ピアソンのが新しいっちゃ新しいよね。
あとは、ぼんやりとでもいいから、何か作りたいものをイメージ
しながら読むといいと思う。
「これはあんなとこにつかえそぉ」とか、具体的に読み進められる。

>>454
お疲れ〜。でも、うちにはOpenGL環境ないんです(w
459login:Penguin:02/07/05 23:56 ID:qXJ160Nx
>>456
本もいいけど、他人の書いたコードを読むのも勉強になるよ。
460login:Penguin:02/07/06 00:20 ID:LbUe5eHh
>>459
御意,,と、口ばかりじゃアレなんで、454のソース読んでみたよ。
で、気づいたこと。
mouse()の中でfor(;;){ if(){break;}}使ってるけど、
do{}while();の方が、意味的にもいいよね。
あと、そもそもこれちゃんと動かんだろ?
tv_startは初期化されていないし、
(tv_now.tv_usec - tv_start.tv_usec)/1000000とかやっても、
0しか戻らないし...
461login:Penguin:02/07/06 00:22 ID:LbUe5eHh
そもそも、(おそらくは)マウスイベントのハンドリングの為だけ
とはいえ、for(;;)のビジーループが存在するだけで許せんぞ。
462login:Penguin:02/07/06 02:38 ID:xjNRRpHF
>>461
あぁ、そこらへんは適当だよ。とりあえず動くという程度のプログラムだから。
白黒のタイルに浮かんでるボールがこっちに向かってくるプログラムだよ。

463login:Penguin:02/07/06 03:02 ID:LbUe5eHh
> あぁ、そこらへんは適当だよ。
つーか、適当に書くとビジーループになるのが信じられん。
適当に書くときはusleep()使えよ。数倍楽だろ。
464login:Penguin:02/07/06 04:00 ID:llRDQuK0
>>444
4芯のなら大丈夫だと思うけど、2芯のだとダメくない?
465login:Penguin:02/07/06 16:12 ID:XQZfZLNG
コード書く人はコンソールなのかな?
466login:Penguin:02/07/06 19:22 ID:llRDQuK0
>>465
Samba経由で秀丸です
467login:Penguin:02/07/08 03:53 ID:r8k7FnUx
std::time_t t;
std::time(&t);
cout<<"date: "<<std::ctime(&t)<<endl;
468login:Penguin:02/07/09 07:44 ID:dI8y656h
僕はviだなぁ。(と言うよりviしか使えませぬ)
はぁ、鬱。
469login:Penguin:02/07/09 08:14 ID:VxwP6xXl
>>466
ふつーメモ帳だ
470login:Penguin:02/07/10 23:09 ID:Umbonmar
http://pc.2ch.net/test/read.cgi/linux/1025048946/96-103

こういう風に、物理シミュレーションとして
速度 += 加速度 * 時間
ってやっちゃうと、誤差が蓄積していく。

だから、あらかじめ毎回全エネルギーを計算しておいて、
毎回 全エネルギーから位置エネルギーをさっぴいて、
運動エネルギーを出して現在速度を算出、
また、位置エネルギから加速度を計算して、現在速度に
加速度*ステップ時間を加え、次の位置を計算して、
次回フレームの位置をだす。

で、新しい位置での位置エネルギーを計算して、全エネルギーから
さっぴいて運動エネルギーを...

ってやれば、一応発散も収束もしない定常的な運動が実現できるはず。
471login:Penguin:02/07/10 23:24 ID:wVIFNohY
perlってすごいの?
472login:Penguin:02/07/10 23:30 ID:Umbonmar
すごいよ。
473login:Penguin:02/07/10 23:39 ID:RWp71i45
>>471
こないだあるツールを最初シェルスクリプトで書いたですよ。
sed を百回くらい呼び出すお化けになったですよ。死ぬ程遅い。
次に妥協して bash 固有機能を使ったら 10 倍くらい改善した。
それを perl で書き直したら更に 5 倍速くなったよ。
しかも断然書きやすい。すごくよみにくいけど。
474login:Penguin:02/07/10 23:48 ID:Umbonmar
>>470 の続き
ちなみに、
http://pc.2ch.net/test/read.cgi/linux/1025048946/96-103
だと、常に重力加速度がモロに働いている状況だから、
運動エネルギーはずーっと増大する一方です。
/* 根本的に、力と加速度/速度の関係がおかしぃように見える... */

475ばねばね:02/07/11 03:45 ID:bhGnPQRz
>>470
エネルギーが保存されてる状態ならそれで行けるかな。
エネルギーが時間の関数でエネルギー自体を差分で求めていく事になると
やっぱり速度を求める時に誤差が出そうな気が。。
まだ組んだ訳では無いので何とも言えませんが。

さっき改めてsodaplayやってみたら、
○ばねの振動は減衰する(現実に則してる)
○地面のはねかえり係数は1未満(上に同じ)
○筋肉の存在(減衰の無いばね?)(生物チックな動きの元)

と言うことが分かりました。ますますややこしい。。
とりあえず簡単な質点の運動から考えてみます。(ばね系はちょっと後回しで)
476ばねばね:02/07/12 03:22 ID:pljjbWtA
void display(void)
{
static struct timeval oldt = {-1, -1}; /* old time */
static struct timeval nowt; /* new time */
int i;

glClear(GL_COLOR_BUFFER_BIT);
glColor3d(0.0, 0.0, 1.0);
switch (g_Mode.mode) { /* ステータス表示 */
case SIMULATE: sd_mvAddStr(5, 30, "mode:SIMULATE"); break;
case CONSTRUCT: sd_mvAddStr(5, 30, "mode:CONSTRUCT"); break;
default: sd_mvAddStr(5, 30, "mode:"); break;
}
if (g_Mode.mode == SIMULATE) { /* シミュレーションモード */
if (oldt.tv_sec == -1) {
gettimeofday(&oldt, NULL);
for (i=0; i< g_nmass; i++)
g_Masslist[i].a[1] = -G;
} else {
gettimeofday(&nowt, NULL);
if (sub_timeval(nowt, oldt) > STEP_TIME) {
for (i=0; i< g_nmass; i++) {
if (g_Masslist[i].x[1]<0 && g_Masslist[i].v[1]<0)
g_Masslist[i].v[1] = -g_Masslist[i].v[1]*e;
else {
g_Masslist[i].x[1] += g_Masslist[i].v[1]*STEP_TIME;
g_Masslist[i].v[1] += g_Masslist[i].a[1]*STEP_TIME;
}
}
oldt=nowt;
}
}
}
if (g_Mode.mode == CONSTRUCT) oldt.tv_sec = -1; /* initialize old time */
if (g_nmass > 1) { /* 記録したデータで線を描く */
glColor3d(0.0, 0.0, 0.0);
for (i=0; i< g_nmass; i++)
sd_mvDispTrianglePoint(g_Masslist[i].x[0], g_Masslist[i].x[1]);
glBegin(GL_LINES);
glEnd();
}
glutSwapBuffers();
}

477ばねばね:02/07/12 03:24 ID:pljjbWtA
質点の重力のみがかかる時のシミュはでけた気がする。。

次は筋肉でもやろ。
478login:Penguin:02/07/12 12:03 ID:8M4txI+9
なんでそんなに移植性のない方法を
479login:Penguin:02/07/13 01:33 ID:V6lw6K5b
みなさん、ioctlって何て呼んでます?
1) アイ・オー・コントロール
2) アイ・オー・コトル
3) アイ・オー・コトロ
4) アイ・オー・クツル
480login:Penguin:02/07/13 01:36 ID:ZQfsDMJ4
半泣き顔こんとるろーる
481login:Penguin:02/07/13 03:49 ID:Y17UaqG9
perl/cursesやりたいな
482ちょっちやってみた:02/07/13 04:16 ID:4FQ5CT5Q
perl -e 'use Curses; initscr();cbreak();noecho();refresh();getch();clear();endwin();endwin();'

う〜ん。Cじゃ駄目?
483login:Penguin:02/07/13 04:17 ID:4FQ5CT5Q
endwin();が二つも(w
484login:Penguin:02/07/13 04:49 ID:Y17UaqG9
モジュール自分でコンパイルしなきゃいけないんだってね。
昨日買った独習Perlはあんまり読んでないです。
485login:Penguin:02/07/13 05:13 ID:Y17UaqG9
コンパイルするわけねえよな
486login:Penguin:02/07/13 07:05 ID:4FQ5CT5Q
マジレス、プログラムに集中したいならdebianとかvineみたいに
プログラムのインストが楽なのが良いよ。いちいちコンパイルするの
面倒でしょ?
487login:Penguin:02/07/13 12:36 ID:y/FpJvxQ
↑?
488login:Penguin:02/07/13 13:02 ID:VEG3EIVt
>>487
ほっとけ。多分486はプログラム言語・環境を自分でインストールする必要が
ないディストリビューションのことを言ってるんだろ。
コンパイルしないですむプログラムってPerlとかsed,awkをちょろって使うことを
想像するよな。普通ソース書いて、コンパイルしてプログラムを作って、実行する
のが当たり前なんだが。
そういうことも書けない 486 はDQNってことで。
489login:Penguin:02/07/13 16:18 ID:JPP/8GD4
>>486 LaTeX とかだと apt とかでサラーっとインストールも魅力的だけどね.
486系がDQN?(´・ω・`)
490login:Penguin:02/07/13 18:46 ID:Ml46bmEz
みんな、WinとLinuxとで、プログラムをどこまで共通化してます?
環境依存部分とOS依存部分とマシン依存部分
どこまでどうやってわけてるのか興味津々。
DelphiとKylixだとそのあたりで手を抜けそうだけど
ふつーのCだと線引きが面倒っつーか、いまいち
知識と経験が足りなくって・・・。
491login:Penguin:02/07/13 19:22 ID:iuPaBagY
i>>486?
intelはいや〜。
492login:Penguin:02/07/13 22:39 ID:KT9e5gI7
いまさらという感じでXlibの質問で何だが
Xで画像を表示するときはXPutImage(XShmPutImage)を
つかうと思う(ここですでに間違っていたりして...)

んで、そのためにはXImage構造体に表示する内容を格納しなきゃ
いけないわけだけど、これをXPutPixelなんかでやっていたらむちゃ
時間かかる。
そこでXImage構造体に直接値を代入しているわけだけど、そんなこと
すると、Xの色数とか、ビットエンディアンなんかに気をつかわないと
いけない...

なんか、正攻法で速い方法って、ないっすか?
(用途としては、メモリ上の画像を表示するとか。さらにそれを
なめらかにフェードイン、フェードアウトするとか。)
さらにいうと、フェードイン、フェードアウトするためにXAllocColorをすると
これもしゃれにならないくらい時間がかかる(256色で0.5秒くらい)
493login:Penguin:02/07/14 01:12 ID:utN6QrPL
ちょっと待って。
Linux使いなんだから当然プログラミングしてるよね??
494login:Penguin:02/07/14 01:53 ID:0gmQZYJ9
このスレを読んでいる→プログラミングしている人が多い は
いえるかもしれんが

Linux使い→当然プログラミングしている は
成り立たないと思われ。
495login:Penguin:02/07/14 02:48 ID:R8XUXxiq
>>492
XF86のDGA extentionとか、そっち方面かな?
Xlibいじるのが目的じゃなくて、何も考えずに
フェードイン/アウトとかやりたいっていうのなら、
SDLあたり使う方が楽だよ。多分。
496500:02/07/14 03:55 ID:0+95ASAZ
shもプログラミングのうちに入りますよね?

497login:Penguin:02/07/14 09:20 ID:SNv7+3Vh
>>496
もちろん
498492:02/07/14 09:27 ID:AysUSjKQ
>>495
それも考えたが
XFree86でないXサーバとかでも使えるように、とか考え出すと
ふつうのXだけで動くようには、しておきたい...
(ゲームとかでなく、凝った画面表示はおまけのプログラムなので)

SDLって、どれくらい使われているのかな
(Linux以外を含めて)
499login:Penguin:02/07/14 09:43 ID:E/smBifZ
>>490
Qtはいかが?
500login:Penguin:02/07/14 09:49 ID:w9MjeXdq
このスレ寿命が長いね。あと2ヶ月で1年だ!!
501login:Penguin:02/07/14 10:34 ID:Ls0TW+0x
gccのC++実装でどうですか?
3.xとかはまともに使えるのかな。
インストール出来なかったんでほっぽってありますが。

2.95とかでstringのat()使おうとしたら、そんな関数ねぇとか言われた
502login:Penguin:02/07/14 12:58 ID:BTJFLzrS
>>498
よくわかんないけど、Imagemagickとかの実装が参考にならないかな?
# あれも遅いけど、内部データ形式が富豪すぎるせいもあるし...
503493:02/07/14 15:20 ID:l0t3RQmI
>>494-500
そうなのか〜
テッキリこの板の住人は皆ハイパープログラマだと思ってYO
504login:Penguin:02/07/14 16:46 ID:/8pWf2te
どっちかっつーと、ハイパーオリンピックかな?
505login:Penguin:02/07/14 16:51 ID:Yx/MjdL4
>>504
定規使用禁止
506login:Penguin:02/07/14 23:30 ID:/7djVYWz
>>505
え〜!(w
507login:Penguin:02/07/14 23:57 ID:Yx/MjdL4
ところで、テンポラリファイルを作る際、
mkstemp をつかうけど、これだと
拡張子が指定できないよね?

/hoge/piyo/hogeXXXXXX.log という感じの
ユニークなファイル名を作りたい時には
どうすればいいのかな?
508login:Penguin:02/07/15 00:00 ID:xQavEYMC
>>507
hogeXXXXXX を作った後 rename すればいい。
509login:Penguin:02/07/15 00:03 ID:fl5PziU0
>>508
(゚∀゚)その手があったか
510login:Penguin:02/07/15 00:42 ID:8uxB0aKC
>>501
私もg++2.95でstd::string::at()が使えないのはどうかと思ったが、
3.xならちゃんと使えるよ。
511login:Penguin:02/07/15 00:55 ID:zxugWZF3
at使えない?
俺の使えてるみたいだけど・・・
ちょっとテストしてこよっ
512510:02/07/15 01:01 ID:8uxB0aKC
自分で言っておいてナンだけど、
コンパイラというかライブラリの問題のような…。
513login:Penguin:02/07/15 01:48 ID:xQavEYMC
>>509
ごめん。アルコールが抜けるとその手は駄目だとわかった。
rename の変名先が既に存在していたら...
514login:Penguin:02/07/15 02:03 ID:J8mIaEez
>>513
fstat()かけてからじゃダメなの?
515login:Penguin:02/07/15 02:24 ID:EGpsN33J
>>514
fstatとrenameの間にその名前のファイルが作られる可能性がある。
516login:Penguin:02/07/15 14:30 ID:0oQu5eSd
>>504-505
ワラタ
517login:Penguin:02/07/15 23:55 ID:swMOJJO9
>>515
次善の策として、ファイルを作成するとき(renameでなく、
あらかじめファイル名を求めておいて)O_EXCLモードでオープン
するというのは?

ファイル名を作成してから実際にファイルをつくられるまでに
ファイルがつくられる可能性はかわらないが、その場合はファイルオープンに
失敗して発見はできる。

しかし、こんな用途に使える関数が...
manをみると、テンポラリファイル作成には
mkstempを使えとあるし、しかしそのmkstempはどれくらいの
プラットフォームで使えるのだろうか...(BSD 4.3としか記述がなかったが
個人的にはなるべくPOSIXにはいっている関数で組んでおきたい)
518login:Penguin:02/07/16 00:58 ID:hmm5jBHR
>>515
そんな事態がどれほどあるかと小一次完...

1 まず、hogeXXXXを作る
2 hogeXXX.logをrwで開き
3 fstatで確認後
4 flockをして
5 hogeXXXからhogeXXX.logへデータを移す

とか考えたけど、>>517が正解だねぇ。

int fd;
char tmpfname[1024];
int rnd;
srand(time(NULL);
do{
rnd = rand()/10000;
sprintf(tmpfname,"/tmp/hoge%4d.log",rnd);
fd = open(tmpfname, O_WRONLY|O_CREAT| O_EXCL);
}while(fd<0);

でどーよ?

519507:02/07/16 02:34 ID:KYuQ4RbT
>>517
manを読むと、そういう生成方法はなんかセキュリティ上
問題があるとかなんとかあった気がしたので
その方法は避けてましたが、冷静に考えてみたら
自分が必要としてる用途ではセキュも糞もなかったので
その方法採用しますた。
520login:Penguin:02/07/20 18:20 ID:vJNkwLNH
よく、設定ファイル(hoge.conf)などがありますが、これらを
簡単に扱うためのCのライブラリとかってありますか?
Winだと hoge.ini を扱うライブラリって言語とわず
結構見かけるじゃないですか。

それとも、普通は hoge.conf に実行属性付けておいて
実行して環境変数への代入しておいて、アプリケーション内からは
環境変数を取り出す、などというのが一般的?
521520:02/07/20 18:21 ID:vJNkwLNH
おっとage
522login:Penguin:02/07/20 18:36 ID:ybTf4BtK
>>517
mkstemp()が無ければBSDあたりから持ってくればいい。
ちなみに、FreeBSDのmkstemp()はO_EXCLでオープンして失敗したら
別の名前でやり直す実装だったから、方法としてはO_EXCLで正解と
思われ。
523login:Penguin:02/07/20 19:14 ID:+e4Ywsmz
>>522 つまり mkstemp のソースを持って来て改造するのがベストと思われ。
524login:Penguin:02/07/20 23:50 ID:r/nNTTXO
>>520
ごめん、しらない。

でも、環境変数レベルでどうにかなる問題だったら、
実体をshellscriptからexecするようにしておいて、
shellscript内で設定ファイルをsourceするってのも手だよね。
525login:Penguin:02/07/21 00:00 ID:ZAjMssmn
>>520
パーサーがあるかと言うことならlibxmlやguileを使えば良いかと。
設定ファイルなんて仕様がバラバラだから汎用性のある物と言うならば結局上記の様な
物になるのでは?
自分でライブラリ作っても良いけど。
環境変数程度の物ならregex使ってパースしてハッシュテーブルにでも入れれば大抵
の用途では事足りると思う。
526520:02/07/21 00:08 ID:NmOGkAVi
一般的(?)には、どんな設定ファイルもまあ基本的には
# コメント
変数=内容
って感じだと思います。(例外いっぱいあるけど気にしない)

というわけで、やっぱ環境変数から取得するという形にしよう思います。
これならある程度汎用的になるし、アプリの作り方次第ですが
設定ファイルを弄ることなく実験的に設定を動的変化させたりってのも
できたりできなかったりするかも
527login:Penguin:02/07/21 01:04 ID:dTOBAnJx
> 設定ファイルなんて仕様がバラバラだから汎用性のある物と言うならば結局上記の様な
> 物になるのでは?

逆に、適切な規模の汎用的なライブラリがあったら、
/etc/以下もすっきりできるかもねぇ。

いろんなアプリで使われるものに、Xのリソースファイルが
あるけど....うーん。
528login:Penguin:02/07/21 12:21 ID:j/gCmqS2
>>526
前どっかのスレで同じような質問を見かけたな。
確か vector にそんなライブラリがあったような。
529login:Penguin:02/07/27 15:22 ID:hfg9O99e
newtライブラリって何処にもヘルプ無いの?
googleで検索してもあんまり情報無いんですよ。
もしあれば何処にあるか教えてください。
530login:Penguin:02/07/27 21:09 ID:r2Y9+6KL
>>529
C マガのバックナンバーとか。あんま詳しくなかったけど。
ttp://www.cmagazine.jp/contents/200111.html
531login:Penguin:02/07/28 01:27 ID:/TjeW2In
デバイスドライバを作ってる最中なんですが
デバイスドライバの中から他のデバイスを叩いたりって
あんまりやっちゃいけないことなんでしょうか?
532login:Penguin:02/07/28 01:50 ID:rgRPFAhB
>>531
>デバイスドライバの中から他のデバイスを叩いたりって
>あんまりやっちゃいけないことなんでしょうか?

いまいち、何がやりたいかわからないんだけど、
ディバドラ自体分割しといて、アプリ側で複数のディバイスを
開いて...ってんじゃ、解決しないの?


533名無しさん@Emacs:02/07/30 14:26 ID:mNZP0XfN
>>530
趙遲レスだが有り難う。
534login:Penguin:02/08/19 02:03 ID:DTCyhgpP
             ∩
                 | |
                 | |
        ∧_∧   | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ( ´Д`)//< 先生! http://www.linuxassembly.orgって
      /       /   \  既に日本語版のサイトありますか?
     / /|    /     \__________________
  __| | .|    |
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||     ヤクスノツカレターヨ・・・・
     .||              ||    
535login:Penguin:02/08/19 13:20 ID:1KCofkxZ
Cの文法はだいたい把握しますた。
んで実際のコード読んで勉強したいんだけど、
小規模で比較的理解しやすいパッケージ(?)をいくつか教えてください。
出来ればdeb-srcで簡単にとってこれる( debパッケージなやつ)おながいします。
536login:Penguin:02/08/19 13:24 ID:eD5yxJRS
>>535
apt-get source hello
537login:Penguin:02/08/19 13:26 ID:SYrEFqYi
>>535
shellutils とか fileutils とかの小粒のツール群がいいのでは?
ed のソースとかもよさげだ。
538login:Penguin:02/08/19 14:13 ID:H68Oku5X
>>534
多分ないと思う。
うpきぼん。
539login:Penguin:02/08/19 14:48 ID:ovWBqoYB
hello... debパッケージまであるとは知らなかった。
540login:Penguin:02/08/19 15:13 ID:p8153rqD
シリアルプログラムで、パリティチェックを有効にしているとき
read中にパリティエラーを検出したとき、
ユーザはエラーの発生をどうやって知るのでしょうか?
541login:Penguin:02/08/19 18:03 ID:jyYsRY2h
>>540
read がエラーで返るだろ。そういうふうに設定すれば。
「詳解 UNIX プログラミング環境」でも読んでくれ。あと、これとかhttp://www.linux.or.jp/JF/JFdocs/Serial-Programming-HOWTO.html
これとか、http://www.easysw.com/~mike/serial/serial.html
ここで説明出来るほど簡単じゃないよ。
542login:Penguin:02/08/19 19:42 ID:F5ATUKjR
えらく豪華なタイトルの本だなあ、ワシも欲しいぞい
543login:Penguin:02/08/19 19:51 ID:jyYsRY2h
>>542 あ、ピアソン版ではタイトルに「環境」が無い。ていうか俺の記憶違い?
544login:Penguin:02/08/19 20:00 ID:jyYsRY2h
カーニハンのと混同して記憶してた。手元には原書しか無かったんで許してちょ。
545login:Penguin:02/08/19 20:47 ID:QyU1EEtg
>>536
始めネタだと思ったけど、検索したらマジで存在した。。。
546login:Penguin:02/08/19 23:47 ID:Uol61iq9
547login:Penguin:02/08/19 23:48 ID:Uol61iq9
548login:Penguin:02/09/16 02:11 ID:nBHpwc4g
#include <cmath>
namespace { const double conservation; }
cout<<std::sin(conservation)<<endl;
549login:Penguin:02/09/16 02:24 ID:UuCJXysR
~$ cat a.C
#include <cmath>
namespace { const double conservation; }
cout<<std::sin(conservation)<<endl;
~$ g++ a.C
a.C:2: uninitialized const `{anonymous}::conservation'
a.C:3: syntax error before `<'
~$
550けっ:02/09/17 01:56 ID:dQYhPsY7
#include <iostream>
#include <cmath>
namespace { const double manko = -1; }
int main(){ std::cout<<std::sqrt(manko)<<std::endl; }
551けっ:02/09/17 01:57 ID:dQYhPsY7
int main(){ std::cout<<std::sqrt(manko)<<std::endl; return 0; }
552login:Penguin:02/09/21 22:40 ID:uw0MlWRh
簡易スニファ作りたいんですけど
もちろんC言語!!
553login:Penguin:02/09/22 01:11 ID:VNXJ0Bg2
libcap でも使っとけば?
554login:Penguin:02/09/26 16:59 ID:1HbHU/pc
using hikky::_553;
555login:Penguin:02/09/26 21:03 ID:oesXnOKB
今だ!555ゲットォォーーー!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
556login:Penguin:02/11/05 15:48 ID:dqOpkjhO
任意のホストにrstパケットを送りつけるプログラムを書きたいのですが
誰かたすけて...
557login:Penguin:02/11/06 15:10 ID:pzGtsriT
age
558login:Penguin:02/11/09 13:14 ID:DzefQovG
  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)<ageて保守だからな
 (    )  \____________
 | | |
 (__)_)
559login:Penguin:02/11/09 16:23 ID:iBCV32CU
保守しなくても、この板は600スレッドを超えないとdat落ちしません。
http://pc.2ch.net/kakolog.html
560login:Penguin:02/11/09 18:18 ID:QawdyZfx
え、
>pcサーバは 600超えたら 500スレッドに圧縮実施中。。。
ってそういう意味なの?
561login:Penguin:02/11/09 18:33 ID:iBCV32CU
はい。
たしかLinux板は前回9月半ばに圧縮されました。
562login:Penguin:02/11/09 20:52 ID:tuOANnkA
>>556
書かなくても sendip をコンパイルすればいい。
563Vacker:02/12/05 02:41 ID:Z7wMsMwz
まだあったのかこの擦れ。
まぁそれはそれとして、今日はPHPな奴にボブを紹介しよう。

http://www.kochinet.info/tech/php/index.html
564login:Penguin:02/12/05 11:38 ID:bTCOh50g
>>563 ワラタ。良いページだ。
565login:Penguin:02/12/05 13:14 ID:KaDgaoUr
566Ahow:02/12/09 07:30 ID:1t8m8tVH
ちみたち、Ahow先生だ。まぁさむいねとっても。それだけだ。

以下は冬休みの宿題とする。熟読しておく予ーに。
http://homepage2.nifty.com/kaz1-iwata/index.htm
567login:Penguin:02/12/24 13:06 ID:4Ul6DjfP
VBみたいに敷居が低いプログラミング言語&環境(?よくわからん)
はありますか?
568login:Penguin:02/12/24 13:12 ID:90NycLOk
>>567
Perlどぞー
569login:Penguin:02/12/24 13:31 ID:HeDNDRBb
>>568
今はrubyっしょ。
570567:02/12/24 13:43 ID:4Ul6DjfP
今、自分は
GUIが要らない場合→Perl
GUIが要る場合→VB
なんです。
571login:Penguin:02/12/24 13:46 ID:dNc5Qp1l
>>570
Kylixとかかなぁ
572567:02/12/24 14:02 ID:4Ul6DjfP
まず、WinにてDelphiで遊んでみることにしました。
ありがとうございました。
573Vacker:02/12/31 01:51 ID:6qGhqv72
574Vacker:03/01/01 03:51 ID:RloUA5wC
お前らちょっと俺は今日ブルーだ。何故かって?
それはだな、フカキョンの掲示板にファンとして書き込んだら管理人が俺の
書き込みを消やがったからさ。なんで俺の素直な書き込みを消すんだよ!
変なのは名前だけだ炉!もっと素直になれ!


・・・まぁ、まったりしている掲示板で俺だけが浮いていたのは、正直本当の事
なんだがな。
575login:Penguin:03/01/01 11:51 ID:Ak2se5Qh
>>528
これですな。

UNIXプログラミング質問すれ
http://pc3.2ch.net/test/read.cgi/tech/992057422/269-

んでVectorのはここですわ。
http://www.vector.co.jp/soft/unix/prog/se099824.html
576IP記録実験:03/01/08 21:55 ID:q1tJvw6R
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
577login:Penguin:03/01/09 01:32 ID:7O52KTcr
>>417
一人釣れたようだぜにょろゆき
578IP記録実験:03/01/09 02:15 ID:XQIV3he6
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
579login:Penguin:03/01/09 02:16 ID:OELvwRgE
わるいことする人がいなくなるね。
でもね。完全匿名のめりっともあるんだよね。
そーいう掲示板も作りたいね♪MaMasにでも。
580login:Penguin:03/01/09 02:42 ID:L6xgACMi
職場、学校、座敷牢から気兼ねなく書き込みでける
ってゆってたのにー
プンスカ!!
581login:Penguin:03/01/09 03:24 ID:A47yaYa8
>>21
スクリプト厨uzeeeeeeeeeeeeeeeee
582教えて:03/01/09 16:18 ID:LZhQAcDf
26408023という数字を、26408023=A×Bとなるように2つの整数のABを求めるんだけど、分からない。
分かる人いますかー?JAVAで求めるらしいんだけどね・・・。
583login:Penguin:03/01/09 16:33 ID:485aUWY4
A=1,B=26408023
584教えて:03/01/09 16:40 ID:LZhQAcDf
ごめん…。A,Bで1は使っちゃダメなんだ…。ごめんね。
585login:Penguin:03/01/09 16:47 ID:jegKH0NW
>>582
プログラム板へ。
586login:Penguin:03/01/09 17:24 ID:HmKXUvWZ
3457 と 7639
587login:Penguin:03/01/14 05:28 ID:lhwtAt7P
>>332
ラモー氏の話面白かったです。
588山崎渉:03/01/15 11:27 ID:1ScAb3I5
(^^)
589login:Penguin:03/01/16 14:26 ID:SkKe5fwD
>586
どうやって求めましたか?
590login:Penguin:03/01/16 14:47 ID:hM036Vp6
#include <stdio.h>

#define A 26408023

int main(){

int i=2, b=0;

while(A%i) i++;

printf("(a,b)=(%d,%d)",i ,A/i );
return 0;
}

これCやからJAVAに書き直せば。
591login:Penguin:03/01/16 15:07 ID:SkKe5fwD
CからJavaの書き換えが分かりません・・・。
本当にすいません。
分かればおしえてくれませんか?
592login:Penguin:03/01/16 15:11 ID:Ep8xaKJi
>>591
小学何年生れすか?
593login:Penguin:03/01/16 15:12 ID:hM036Vp6
あっ、b=0;っていらねー。
594login:Penguin:03/01/16 15:16 ID:SkKe5fwD
592
すいません・・・。
でも分からないので・・・。
595login:Penguin:03/01/16 17:35 ID:feJsTFoR
>>594
えっと、「自分で宿題を考える気がないからおまえらやれ!!」
ってことでおっけーですか?
596login:Penguin:03/01/16 17:42 ID:WUJffFZO
来年はちゃんと授業聞こうね。
597login:Penguin:03/01/16 17:49 ID:Ep8xaKJi
>>594
とりあえず実年齢だけでも教えてくれ。
今の学生がどんな感じなのか知りたいので。
598login:Penguin:03/01/16 19:35 ID:NatKqxcj
ruby -e 'i=2; while(26408023%i != 0); i = i+1; end; printf("%d %d\n", 26408023/i,i);'
599login:Penguin:03/01/16 19:45 ID:E2QXycXN
$ factor 26408023
26408023: 3457 7639
600599:03/01/16 19:47 ID:E2QXycXN
すまん。元ネタはJavaだったのねm(..)m
601login:Penguin:03/02/01 02:24 ID:QsU/uBur
勉強かねてLinuxのソフトを作ってみようかとおもってるんですが
KDevelopってつかってる人いますか?
Visual C++ににてるんでとっつきやすいかな?って思ってるんですが
ネットでの情報がかなり少なそうなので苦労しそうかな。。

602login:Penguin:03/02/02 03:06 ID:30w/+xfv
Vineでddd使ってるんですが、
Tabでインデントしてると、ソース中で、マウスでクリックした位置と
実際のソースがずれるのですが、
どうすれば修正できるのでしょう?
603login:Penguin:03/02/13 01:23 ID:ndENOYtJ
Linuxのプログラミングスレってここだけ!?
想像以上に閑散としてるな〜〜

今、サウンド関係をプログラミングしてるんだけど、
誰か今のLinuxのサウンド関連のトレンド状況を把握
してる人居ないかな?

ALSAの組み込みや、音を垂れ流すだけならいいんだけど、
音を出したり止めたり重ねたりを自由に制御するには
何を使えばいいんだ?

EsounDとかで重ねられそうなんだが、今度は単音を
途中で止めたりの制御が・・・

まさかそっから先は、未だに全部自分で作るしか無い
状況なんか?

ググッても、殆ど情報がひっかからず、EsounDの本家
サイトは2000年で時が止まってるし、一体今のバージョン
は誰が管理してアップグレードしてるんだ?

時代はもうEsounD使わない方向なんか?
今のLinuxのサウンドを牛耳っている主流が何なのか
知りたい・・・情報求む。
604login:Penguin:03/02/13 01:24 ID:ndENOYtJ
目立つようにあげとこ。
605login:Penguin:03/02/13 05:51 ID:He2RUuWo
>603
音の重ね合わせってそれ出来んの?DirectSoundとかの様に?
606login:Penguin:03/02/13 05:58 ID:He2RUuWo
>>597
ショタハケーン
607login:Penguin:03/02/14 12:47 ID:2/eMaFxI
>605
EsounD (Gnome用サウンドデーモン) ならできます。
直接サウンドデバイスに音を送らずに、こいつに送ってやると、
こいつが複数の入力を合成して、サウンドデバイスに送って
くれるという仕組みです。
でも、EsounDの仕様が、一度ウェーブデータを送ってしまうと
途中で再生を止められないみたいなんですよ。
これだと、ゲームのナレーションみたいな音の出し方をしたい
場合、途中で飛ばすとかができない。
そして、なぜか、本家サイトの開発が2000年ぐらいから殆ど
進んでない。
とはいえ、世の中には新しいバージョンも配布されているようで
一体どこの誰がメンテナンスしてるのか ・・・
そして、その新バージョンのドキュメントを見ても本家サイトの
URLをミロ ・・・ みたいな事になってる。
(でも、機能はあまり変わってない。バグフィックス中心か?)

他の分野では凄まじい勢いで開発の進んでるLinuxだが、
どうもマルチメディア系は開発が細々としか進んでない感じがする。
一体どこへ向かおうとしているのだろう ・・・

ちょっとした仕事で、Linuxでビデオと音声を扱う事になったの
だが、他の分野と比べて、情報量が圧倒的に少ないのにちょっと
まいっている所。ま、今回はたいしたアプリケーションでないから
なんとかなりそうではあるが ・・・
608login:Penguin:03/02/14 14:50 ID:4IRvBYC/
>>607
jack なんかはどうかな?
http://jackit.sourceforge.net/

linux-audio-dev ML のアーカイブをざっと読むと
最近のトレンドはある程度把握できると思うよ。
609名無しさん@Emacs:03/02/14 21:15 ID:FG8nW0fg
何も知らないんだけど、SDLでどうにかならんかな?
610login:Penguin:03/02/15 23:13 ID:0QrA37pB
>>608
どうも。
とりあえず、多重化は必須というほどではなかったので、
急場はALSAに別スレッドでデータを流して音を止められ
るようにする事で解決しました。
じっくりやってる時間がナイ・・・
611login:Penguin:03/02/16 03:27 ID:0kL1SNcD
unixのサウンドって/dev/audio0とかに書き出していくだけじゃなかったっけ?
その下がALSAドライバが受け持つとか。ALSAにデータ流してってどういう話
なんだろう?
612login:Penguin:03/02/16 15:36 ID:6c33+CVl
esoundはもう見捨てられたと考えていいと思うけどな…。
ソース忘れたけど、ACからも嫌われてるし。


あー、さっさとALSA普及させろやー
61367:03/02/16 16:27 ID:p4l0B0Y2
■■無料レンタル掲示板■■

どんどんレンタルして下さい

ランキングありジャンルも豊富です


http://www.geocities.jp/kgy919/bbs.html










614login:Penguin:03/03/10 00:09 ID:eD+YrOEB
XLib ネタで質問あります。 DefaultGC ってあるけど、これって何かね?
なんか分からんのよ。
XCreateGC で返るのは新たに作ったやつだよね?だからアプリがいじっても
かまわないだろうけど、俺は DefaultGC で返るGCをいじってるけどちゃんと
反映される(出力の色とか)し、他のWindow がおかしくなったりしないのよ。
なーにこれ?
615login:Penguin:03/03/10 11:21 ID:buxmoWsJ
>>614
マクロ DefaultGC は、指定したスクリーンのルートウィンドウの
デフォルトのGC を返す。
616login:Penguin:03/03/11 06:52 ID:iMqi8r5z
>>615
うーん、つまり、DefaultGC は内容が ルートウインドウと同じものが
用意されるのかねえ?なら納得できるんだけど。

617login:Penguin:03/03/15 04:42 ID:qpnlxQeb
サウンドプログラミングのついでに聞いちゃいたいのだけれど、OSSとALSAでは
スペシャルデバイスファイルの違いは、

/dev/audio==OSS
/dev/snd/pcm何とか==ALSA

という配置であるという理解でよろしいか?
618login:Penguin:03/03/16 04:28 ID:iPIOgVUt
だめだめ
619login:Penguin:03/03/18 15:40 ID:Vc3GhXfh
1です、久しぶり。
ここでの奮闘により、
去年の内にポインタを理解し、
今ではカーネルやデバイス関係のドキュメントを英語で読むに至っております。
勿論、奨められたSDLは大変気に入っており、
毎日のようにコードを書いています。
620login:Penguin:03/03/20 22:09 ID:150VeITd
linuxのデバイスドライバを作るのにC++を使いたいのですがどうにもうまくいきません
どこか良い開設サイトをご存知ありませんか?
621login:Penguin:03/03/21 03:31 ID:Ar5jNpE7
お願いだからやめてくれ
622login:Penguin:03/03/21 11:23 ID:LoWU/LPj
>>620
解決法を思い付かないなら止めれ。
てか、どういうメリットがあるの?
623山崎渉:03/04/17 12:13 ID:PWISM87M
(^^)
624山崎渉:03/04/20 06:07 ID:X64WTq1+
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
625教えて君:03/04/25 10:20 ID:zWQkST10
CまたはRubyを使って、指定全角文字のフォントの
ドットパターンを取得するにはどうやるんでしょうか?
626動画直リン:03/04/25 10:26 ID:1KQi+Ees
627login:Penguin:03/05/19 10:41 ID:B7F7qJzq
C言語のプログラムからコマンドを使うにはどうすればいいのですか?
628login:Penguin:03/05/19 11:13 ID:zFFJzSM7
629login:Penguin:03/05/19 11:33 ID:3Do4PmQQ
>>627,628
popenってのもあるよ。
630login:Penguin:03/05/19 14:07 ID:K5A7Hh5Y
fork()してexec()
631教えて君625:03/05/19 17:58 ID:j84chePv
   / ̄.....//.... θ ̄>
  ∠|::::::::::::::U:: τ ::::::<
⊂二|::::::::::::::::::::::::::θ_>
    ̄∠/ ̄ ̄    …モウダメポ
632login:Penguin:03/05/19 19:29 ID:Y0/Pjc0j
fork,execな変態APIはどうにかならないものだろうか。
633login:Penguin:03/05/19 19:48 ID:+4CtkZ3y
>>632
CreateProcess[Ex] の方が変態すぎて(ry
634login:Penguin:03/05/20 00:14 ID:ij1JGhpr
>>628-630

蟻がトン(^^
635login:Penguin:03/05/20 00:39 ID:a9FLtpm3
>>632
あれはないよりはあった方が良いと思うが。
それとも fork(), exec() をまとめた関数が一つあった方が良いかい?
良いと思うなら自作して発表してみたら?
(もう誰か作ってそうだけど。 system() はそれの一種だよね。
/bin/sh 使ってしかも wait() しちゃうけど)。
636login:Penguin:03/05/20 00:53 ID:Fx7TYsA6
>>635
>>629&>>633

popenは中でforkしてパイプでつなげてるだけ。manで書いてあることそのまんま。

CreateProcessだと
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_createprocess.htm
こうなるが、引数にてやろうとしていることは、forkからexecする間に噛ませばなんのこたぁない。
637login:Penguin:03/05/20 01:36 ID:a9FLtpm3
>>636
Windows の CreateProcess() 使うと複雑になるんだよね。
一つの API に機能を詰め込み過ぎてると思う。だから
こんなに説明が長くなる。使う側の慣れもあるんだろう
けど、俺はあまり使い易いとは感じないな。
638login:Penguin:03/05/20 01:44 ID:3OKeb603
>>635
spawnをシステムコールに追加って話があった。
あれどうなったのかな?

639login:Penguin:03/05/21 11:42 ID:YFGEALm2
man3 と man2 の違いは何ですか?
JMのサイトを見ても、 1-8 まであるみたいだし。
大雑把な区分けといったものがあるのでしょうか?
640login:Penguin:03/05/21 15:23 ID:zAJggrG2
>>639
man manを読む。
ちなみに、
2 - システムコール
3 - libc
641login:Penguin:03/05/21 18:32 ID:DKxRrfrt
>>639
$ man 2 intro
$ man 3 intro
などなど
642山崎渉:03/05/22 01:52 ID:p4opmoqv
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
643教えて君625:03/05/22 11:23 ID:e75yor33
フォントのドットパターンの取得方法について優しく
教えていただける夢を見ました。
が、肝心の所で目が覚めてしまいました。
644login:Penguin:03/05/22 15:07 ID:eHEw1nmE
>>643
フォントを表示しておいてスクリーンショットを取って画像データを切り出すという
荒技を考えてみた。外部コマンドが揃っていれば言語は何でもいいと思われ。

#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>

#define FONT "-mona-gothic-medium-r-normal--14-130-75-75-p-140-jisx0208.1990-0"
#define CODE 0x3021

int main()
{
 FILE *pipe;
 pid_t pid;
 char code[6], data[4096];
 int size, status = 0;

 /* run xfd in the background */
 pid = fork();
 if (pid == 0) { /* child */
  snprintf(code, sizeof(code), "%d", CODE);
  execl("/usr/X11R6/bin/xfd", "xfd", "-start", code, "-fn", FONT, NULL);
  fprintf(stderr, "Error: execl xfd failed\n");
  _exit(1);
 }
645644:03/05/22 15:08 ID:eHEw1nmE
 /* extract part of the "xfd" window as a PPM image */
 pipe = popen("xwd -name xfd | xwdtopnm | pnmcut -left 4 -top 116 -right 31 -bottom 140", "r");
 if (pipe == NULL) {
  status = 1;
 } else {
  size = fread(data, sizeof(data), 1, pipe);
  pclose(pipe);
  printf("%s\n", (data[0] == 'P' && data[1] == '6') ? "OK" : "NG");
 }
 /* stop xfd */
 kill(pid, SIGTERM);

 return status;
}
646644:03/05/22 15:14 ID:eHEw1nmE
よく知らないけど Xlib とか FreeType とか SDL とかその手のグラフィック関係の
ライブラリの API を使ってピックスマップに文字をレンダリングするのが正攻法だと
思う。上のはお遊びってことで。
647教えて君625:03/05/22 23:24 ID:e75yor33
>>644
ありがとうございました。バッチリ動作しております。
これを元に改造して使ってみます。
またXlib辺りも調べてみます。
648login:Penguin:03/05/22 23:45 ID:qgpDlc9Q
>>635
>それとも fork(), exec() をまとめた関数が一つあった方が良いかい?
この前のlkmlにそれに関してポストした奴がいたね。
なんでもfork,execをひとつにしたnew system callを作ろう!って言う感じで。
でも、まわりからは反発されまくってたけどね。(w
それをする意義があまりにも無さ過ぎるんでしょうね。
649login:Penguin:03/05/23 11:32 ID:/d2rxA9m
>>648
forkの処理を端折れる(といっても微々たる物ですが)ので
無意味って事はないけど、アプリ側の修正の手間が…って事だと思いますが。

2.7になったらもう一回議論すればよろしいんでは?
今になってシステムコール追加しても、まわりの対応が2.6に間に合う保証はないし。
650login:Penguin:03/05/23 15:40 ID:dZHIOWYJ
>>649
2.7にでも入れてとパッチをMLに投げとけばええんでない?
でも無視されっぽw
651649:03/05/23 16:16 ID:/d2rxA9m
>>650
遠慮します。別にいらないし。
最大の問題はarchの下も直す必要がある所なんだけど。
652login:Penguin:03/05/23 16:35 ID:z9yq3ofE
LinuxでプログラミングといったらC/C++なのですか?

ServletやJ2EEでWebsiteを作りたいと思っているのでJavaをやっています。
653login:Penguin:03/05/23 16:44 ID:6bO6Evwp
コンソールにカラーで文字を出力させるにはどうしたらいいの?
654login:Penguin:03/05/23 17:24 ID:8XuGW2x3
>>653
シェルなら
echo -e "\e[44m青背景\e[0m"

CやPerlなら
printf("\e[31m赤前景\e[0m\n");

\e は \x1B, \33 でも可。
つまりASCIIのエスケープのこと。

他にもboldなどの属性を組み合わせたり出来る。
詳しくは man console_codes

#ちょうど端末系のプログラムしてたーよ
655login:Penguin:03/05/23 17:34 ID:Q/fduj3n
>>653
ライブラリ:
・S-Lang
・ncurses
など。手抜きなら

 put_ansi_color(int color) {
  printf("%c[%dm;", 0x1b, color)
 }

ANSIカラーシーケンスぐらいは自分で調べろ
656655:03/05/23 17:36 ID:Q/fduj3n
ちょと間違えた。

657648:03/05/23 20:22 ID:PJ5y0ueJ
>>649>>650
別にsystem callにする必要ないでしょう。
それをするならライブラリで十分だよ。
でも端折れる割にはあまりメリットがないような。

っていうかやっぱりライブラリにしても自分は使わない。(w
658login:Penguin:03/05/23 20:47 ID:1yWSV2Pq
fork+execで特に不満は無いが、なぜこんな気持ち悪い方法で
プロセスの生成するようになったのかは知りたい。
659login:Penguin:03/05/23 20:56 ID:dZHIOWYJ
>>658
CreateProcessのほうが気持ち悪いって・・・

fork+execならば、CreateProcessのまねごとは出来るが
CreateProcessでは、fork+execのまねごとは不可能。

>>657
そいやぁexecはsystem callじゃなかった・・・スマソ

> っていうかやっぱりライブラリにしても自分は使わない。(w
同上
660649:03/05/23 20:59 ID:/d2rxA9m
>>657
ライブラリじゃほとんど端折れないと思うんだけどねえ。
と思ったけど、cloneに手を入れればライブラリだけでもなんとかなりそうだな。
激しく汎用性ないけど。
661login:Penguin:03/05/23 21:42 ID:BrbHauGn
Hello World! 出せたよ!!!
662648:03/05/23 22:04 ID:PJ5y0ueJ
>>660
いぁ、そういう意味で言ったんじゃなくて、
fork + execをひとつにすることを端折ると言いました。

それに、そのような関数の組合せを一つにして
system call等を作成すると結構な組合せができるし、
議論も分かれる部分があると思うし、
なにより、わざわざ存在してる物を組合せてKernelやlibraryのサイズを
増やすこともなかろうと思うわけです。

Linus Benedict Torvaldsは、以下の言葉を引用したことがあります。
"Keep It Simple, Stupid"
「シンプルにしておけ、何もわざわざ複雑にする必要は無い」ってことでしょうか?
663login:Penguin:03/05/23 23:06 ID:1yWSV2Pq
>>659
いや、まねができるとか、機能の問題じゃなくてな。

突然プログラムが2つに分かれたり、別のプログラムに置き換わったり
することが気持ち悪いと感じるわけだが。
#突然、自分のコピーが作られたり(しかも、自分はコピーの方だったり)、
#気づかないうちに他人の脳が移植されてたりする感覚といえばいいだろうか。

言語としてそういう動作がサポートされている言語なら違和感無いのかも
しれないが、Cではそういう動作はまず無いし。
664login:Penguin:03/05/23 23:45 ID:ppcJMMz5
>>663
あなた自身、ご両親から fork してご自分の人生を exec しています。
Unix の仕組みと同じです。何も気持ち悪く思うことはありません。
665649:03/05/23 23:51 ID:/d2rxA9m
>>662
sendfileなんてのもありますが。
まあ、あれはメモリコピーの回数が減らせるので、それなりに存在意義があるか。
666648:03/05/23 23:59 ID:PJ5y0ueJ
>>665
カーネル内コピーなんでパフォーマンスをあげるため作成されたんじゃないかなぁ。需要もありそうだし。
667login:Penguin:03/05/24 02:20 ID:B4Q+JvDP
>>664
でも人生、sleepだけではだめですよ。
できるだけたくさんのI/O処理をかまして、人生を有意義にすごしましょう。
まぁ、負荷がかかりすぎてカーネルパニックで自滅も怖いけどね。(w
668login:Penguin:03/05/26 16:17 ID:RBKpcb+0
waitがプロセス停止でも返るのはどうにかならんか?
669login:Penguin:03/05/26 20:21 ID:h/wVtHwT
ターミナルの linefold bugと はどういうバグなのですか?
670login:Penguin:03/05/27 00:55 ID:7nn4IhbL
>>668
WIFSTOPPEDマクロを使用しては?
671山崎渉:03/05/28 16:52 ID:3t6i6zxR
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
672login:Penguin:03/05/30 03:10 ID:MG+2HHAG
メッセージキューもセマフォもキーが数字ですが、これって他のアプリと衝突しないのでしょうか?
Windowsでは文字列で管理してたのでそこらへんが衝突する心配はかなり少なかったのですが。
673login:Penguin:03/05/30 09:27 ID:giaMtuFk
>>672
キーにinodeを使えば衝突はまず無いな。
674login:Penguin:03/05/30 18:14 ID:ygNMVWQQ
>>673
テンポラリファイルの inode を使うとかいうガイドラインでもあるの?
他のプロセスも同じガイドラインで動いてないんだったら、自分だけ inode
使ってもやっぱり衝突すると思うが。
675login:Penguin:03/05/30 19:55 ID:giaMtuFk
>>674
失礼inodeじゃなくてftokだ。man ftok すりゃガイドラインある。
676login:Penguin:03/05/30 21:07 ID:7CcX10s9
perlでOSを書くってのは可能ですか?
677login:Penguin:03/05/30 22:56 ID:ABzzpQz+
>>676
perl -e 'print "OS";'
678login:Penguin:03/05/30 23:01 ID:saH6ipGu
AWKでOSを書くのは可能ですか?
679login:Penguin:03/05/30 23:09 ID:skGhRn3W
仮想マシンなら書けます。
680login:Penguin:03/06/12 18:51 ID:xQEvAwt/
catやls等のソースを読もうとcoreutilsパッケージを落したんですが、
複雑でよく分かりませんでした。
これって1.0とか前のバージョンだとすっきりしてるんですか?
探してもそんな昔のバージョンの物は見付からなかったのですが
どこかで配布しているのなら教えて欲しいです。
681login:Penguin:03/06/12 20:24 ID:gS0S/vM1
>>680
> catやls等のソースを読もうとcoreutilsパッケージを落したんですが、
ちょっと前までは、lsはfileutils、catはtextutilsだったんで、
それらを探してみては?
682login:Penguin:03/07/05 00:50 ID:GDJ/wBjJ
CDをRAW読み込みするにはどうすればよいのですか?
683login:Penguin:03/07/05 01:15 ID:3NMShMij
>>682
dataだったら/dev/*読めばいいんじゃないかと。
audioだったらcdda2wavを参考にすれ。

684login:Penguin:03/07/06 01:47 ID:Y9+oauTP
システムコールを使うプログラミングを勉強するのにもっとも適した
参考書・教科書は?
685login:Penguin:03/07/06 02:21 ID:k2dvOV2J
$ bash -c "help trap"
686685:03/07/06 02:26 ID:k2dvOV2J
...と思ったらこんなにあるのね。
しらんことに口出すとろくなことない。
逃亡

Linux System Call Table
http://world.std.com/~slanning/asm/syscall_list.html
687login:Penguin:03/07/07 13:33 ID:q22K5uBr
ChangeLog のフォーマットが解説されているサイトを教えてください。
688login:Penguin:03/07/07 16:15 ID:8LS9zi4W
>>687
ググらんでよし。

% info standards documentation 'change logs'
689login:Penguin:03/07/08 01:10 ID:DtGnB79X
(・∀・)renice!
690login:Penguin:03/07/10 23:12 ID:JFqZpSeu
C言語で、MACアドレスを取得するにはどうすればいいでしょうか?

691 :03/07/10 23:12 ID:JFqZpSeu
また、wget や grepの出力結果を、直接、Cのプログラム内で受け取ることはできないでしょうか?
いままでは、

system("grep hu-nn hoge.log > grep.log");
grep.logを開いて読む

とやっていたのですが、これをやっていたプログラムをファイルの使えない
組み込みLINUXに移植することになりましたので、よい方法を探しています。
692login:Penguin:03/07/10 23:30 ID:DlPSb+E0
>>691
pipeでつながったパイプ(ファイルディスクリプタ(FD)のペア*1)作成
forkでサブプロセス起動
サブプロセス側で
 stdoutをクローズ
 dup2でFD(*1)の標準出力1番に複製
 execでgrepなどを起動
メインプロセス側で
 FD(*1)のペア残りを読み込み
 waitpidでサブプロセスの終了を待つ

とすればいけるはず
 
693691:03/07/10 23:45 ID:JFqZpSeu
>>692
教えていただいたことを手がかりにして何とかいけそうです。
非常に助かりました。ありがとうございました。
694login:Penguin:03/07/11 01:49 ID:nVc5TxUX
>>690
ifconfigのソースよめ。
たしかPF_PACKETのsocket作ってioctlすべし。
だったと思う。

>>692
素直にpopenでいいんでは?
695login:Penguin:03/07/11 01:57 ID:Lri3S1WJ
>>690
ぐぐったらこんなんでたよ。
http://www.linuxquestions.org/questions/archive/9/2003/03/3/38217

ぐぐキー「ioctl MAC Address Getting Linux」
696login:Penguin:03/07/14 02:47 ID:5XjH4O4S
age
697login:Penguin:03/07/14 13:24 ID:iCUPa5T3
微妙にスレ違いだけど、"User collaboration in open source development"
なんていうサブジェクトのメールがきた。
スパムかと思ったら有名大学の学生さんによるオープンソースプロジェクトに関する
アンケートだった。
698山崎 渉:03/07/15 11:17 ID:2JhhXBQM

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
699login:Penguin:03/07/15 12:02 ID:KhvjxSuE
(・∀・)renice!
700login:Penguin:03/07/16 09:46 ID:/p4PizTj
1にお勧め書籍の紹介あることを期待してここを開いたわけだが、ないじゃん。
Linuxプログラミングっつー、目線がはいってる怪しいやつかおうかとおもってるんだけど、どー?

701login:Penguin:03/07/16 10:54 ID:/p4PizTj
702login:Penguin:03/07/16 15:20 ID:LkFgtc49
703login:Penguin:03/07/16 23:12 ID:RMGCfqzT
>>700
かなりおすすめ。あんまLinux固有の話じゃなくて、
Unix全般についてあてはまることが書いてある。
やりたいことにもよるがな。
Cはちゃんと分かってて、GUIプログラムつくりたいんじゃなきゃ
オススメ。

704login:Penguin:03/07/17 00:30 ID:GsLFg1G9
eth0 ,eth1 のアドレスを調べる関数って何でしょう?
705login:Penguin:03/07/17 00:43 ID:jtcdxhET
何のアドレス?
706login:Penguin:03/07/17 00:52 ID:TN6AJWjK
>>704,705
man ioctl_list
にある <include/linux/sockio.h> あたりのどれかだろ?
ADDRってつくのがいろいろあるが。
707login:Penguin:03/07/17 08:57 ID:1kQtRwFh
>>702
こーゆーのもあったのね。サンクス。

>>703
昨日さっそく立ち読み、
漏れはWindowsプログラマ(C++)なのだが、分かりやすかったので即購入。



708707:03/07/17 09:07 ID:1kQtRwFh
しかし、
VisualStudioの高性能なIDEに慣れきってるもんだから、
makefileやらEmacsやらがちょっととっつき辛いね。
GUIを作りたいわけじゃぁ無いのだけど、KDevelopへ逃げちゃたーよ。
KDevelopはなかなか高性能なのだが、VSに比べると重いのが難点。
709login:Penguin:03/07/17 11:36 ID:V3J08gFU
>>708
WideStudioってのもあるけど。まぁ好き嫌いは当人にお任せして。

emacsでgdbとか使えるようになるといい感じだよ。

IDEに頼る人って、よく醜いソースコード吐くんだよね。
IDEが高機能=ソースコードが醜くても何とか見える
から・・・それだけは慎重にしとくれ。

GUIならGTKライブラリがお勧め。
710login:Penguin:03/07/20 23:19 ID:R7nf/Fv+
>>708よ。
>>709が言いたかったのは、
ようは、
viを使えよと、Makefileを書けよと、shellでシステム管理用スクリプト
ぐらい書けよと、sedとawkと正規表現を極めろよと、
kernel sourceの修正をして、パッチ作成してlkmlにポストして、
たまにはLinusに注意してやれよと。
こう言いたかったようです。
711login:Penguin:03/07/23 11:46 ID:ZPPlsMW8
(・∀・)renice!
712login:Penguin:03/07/23 15:05 ID:6cwqB+RT
UNIXドメインソケットの作成ってどうやるの?
socket作った後bindするのがよくわからない
713login:Penguin:03/07/23 15:25 ID:fIgXDXyS
714神の賜物:03/07/23 15:32 ID:sSQJakwS
誰か教えてください。リナックスのOSを市販のノートパソコンにインストールして
ワードなんかのアプリケーションはうまく機能するのですか。何分ウィンドーズしか
知らない未熟者です。よろしく指南ください。
715_:03/07/23 15:39 ID:szLePVKp
716login:Penguin:03/07/23 15:45 ID:YqKlkAJm
>>712
--- 受付 ---
struct sockaddr_un sun;
fd = socket(PF_UNIX, SOCK_STREAM, 0);
sun.sun_family = AF_UNIX;
strcpy(sun.sun_path, "/tmp/honyarara");
bind(fd, (sockaddr*)&sun, sizeof(sun));

--- 接続 ---
struct sockaddr_un sun;
fd = socket(PF_UNIX, SOCK_STREAM, 0);
sun.sun_family = AF_UNIX;
strcpy(sun.sun_path, "/tmp/honyarara");
connect(fd, (sockaddr*)&sun, sizeof(sun));
-------------

man unix
でわかるかも?

717login:Penguin:03/07/23 18:41 ID:ZQqetWNF
いきなりの質問ですみません。
RedHatLinux8.0でメールボックスにメールを受信した時に
PHPスクリプトを呼び出して処理を行った後返信をしたいのですが、
メールが届く度に、PHPスクリプトを呼び出すメールサーバ側の設定がわかりません。
どのようにすればいいでしょうか?
PHPはphp 4.3.2をimap関数付きでconfigureしてます。
sendmail 8.12.5
popt 1.7.1
よろしくお願いします。
718login:Penguin:03/07/23 18:59 ID:qGKxaJYN
フリーの統合開発環境でいいのないすか?
どうもviじゃいまいちだし。
できればVC++みたくで日本語環境で使える奴。
キリクス高杉
719login:Penguin:03/07/23 19:04 ID:YqKlkAJm
>>718
WideStudio, Kdevelop, etc...
720login:Penguin:03/07/23 19:17 ID:6cwqB+RT
>>716
(゚∀゚)サンクスコ
721login:Penguin:03/07/23 19:18 ID:cPeNPJaK
>>719
「いいの」といってるだろ。

>>720
諦めてvi, emacsに慣れるかcuiアプリならsamba経由でvcで開発デバッグするのも有り。
C/C++でVC並に使いやすいIDEはないよ。
つかKylix Open Editionじゃ駄目なのか?
722login:Penguin:03/07/23 19:44 ID:CrZUc/cg
WideStudioって未踏採択されたらしいよ。
これから良くなるんでないの?
723718:03/07/23 23:01 ID:qGKxaJYN
>>719-722
それぞれ見てみましたが一長一短って感じですね。
取りあえず将来性も考えWideStudio使ってみようかとおもいます。

Kylix Open Editionも良いけどGPLソフトしか作れないってのはきっついなー。
724login:Penguin:03/07/24 10:51 ID:fOKry8Mc
>>723

> フリーの統合開発環境でいいのないすか?
> どうもviじゃいまいちだし。
> できればVC++みたくで日本語環境で使える奴。
> キリクス高杉

VC++使えばいいじゃん。もう(買って)持ってるんだろ?

今更フリーにはしるこたぁねえよ
725707:03/07/24 23:23 ID:m74KDjKB
>>723

漏れはWindows用のゲームのサーバとしてLinuxでプログラム組んでるが、
Windows上でLinuxと同じ動作をするぷプログラムをまず組んで、
あらかたバグがとれたらLinuxへ移植。もっと効率のいい方法無いかな?
726login:Penguin:03/07/25 02:14 ID:V77hoGnP
>>725
開発効率が良ければいいんじゃないかな

開発環境ってもただの道具だし、
手に馴染んだものを使うのが
結局一番いいということもあるし。
727login:Penguin:03/07/25 11:23 ID:azZp68HE
えっと、質問させてください
最近真面目に勉強始めたんですが・・・

Cでプログラム作って、中の動作を一部シェルやコマンドに任せたりなんてどーやってやるんですか?
徹頭徹尾、CならC、シェルならシェルで書かないとイカンですか?
728login:Penguin:03/07/25 11:30 ID:29zDwjlu
>>727
system, exec, fork
を参考にしてください。
729login:Penguin:03/07/25 11:30 ID:29zDwjlu
あ・・あと、popen
730login:Penguin:03/07/25 12:07 ID:azZp68HE
>>728>>729
ありがとうございます
731login:Penguin:03/07/26 04:56 ID:aiFKdJLY
emacsは統合開発環境じゃないのか?
732login:Penguin:03/07/26 05:17 ID:J0HMlTl0
>>731
"統合環境"だろ。"開発"は余計。
733login:Penguin:03/07/27 07:01 ID:6YULTMa4
開発で合ってますが。
734login:Penguin:03/07/27 14:59 ID:dGC6KQ/n
>>733
このスレでの発言であればあってるから問題ない
他のスレで「開発」なんて付けて呼んだらイカンけどな。
735login:Penguin:03/07/28 12:55 ID:YIr5Dzm4
(・∀・)renice!
736login:Penguin:03/07/28 18:40 ID:Fse58Rnu

スレ名:Linuxプログラミング
板 名:Linux@2ちゃんねる
投稿者:
メール:sage
投稿日:2003/07/28 18:38:34
本 文:

emacsって、CUI環境で日本語入力できる?

オレRedhat8.0とTurboLinux使ってみたんだけど、
両方とも起動直後のコンソールではshift+spaceでFepが立ち上がらん。

x-window上でktermを起動させて、その上でemacsを起動させればFEPも使えるんだけど、
重い・・・。
737login:Penguin:03/07/28 18:41 ID:Fse58Rnu
スマ、余計なモンまでCut&Pasteしちった
738login:Penguin:03/07/28 19:40 ID:3aOZaK5v
「Fep」が世代を感じさせるね
739login:Penguin:03/07/29 01:10 ID:Ft2LMD2u
>>736
激しくスレ違いだが一応答えておく・・・

emacsのFEP(IME)は、CTRL+o もしくは、 CTRL+\ です。
キーバインドの設定によって変わってますが、大抵はどちらか。
# emacsが起動するホストでcannaやwnnやATOKなどが起動している必要がある
740login:Penguin:03/07/30 17:45 ID:yKm3BaiU
標準入力(fdでいうと0か) をdefineしてるヘッダってどれですか?
grepしたら
unistd.h:#define STDIN_FILENO 0
と出たんだけど、これ使っていいの?
741login:Penguin:03/07/30 17:55 ID:Gdoqv3Kj
>>740 いいよ
742login:Penguin:03/07/31 03:19 ID:k0B+t1iH
ctrl+oはやったんだけど、Ctrl+\はやってなかった、、。サンクス!

743727:03/08/01 11:58 ID:FcJoCnjb
追加質問です

Cの中でコマンドを使うにはsystemなどを、というコトでしたが、
例えばprintf系のように%dとか%sとかって使うコトは出来るのでしょうか?
systemは実際駄目でしたが。




744login:Penguin:03/08/01 12:05 ID:YzTLfBOM
>>743
そのためのsprintf
全然Linux固有の話じゃないな。

あと、外部の入力をsystemに食わせる時はちゃんとチェックしとけよ。
穴になるぞ。
745login:Penguin:03/08/01 13:22 ID:3Dz1soT0
>>743
そういう関数は無いから自前で作る。たとえば

int systemf(char* fmt, ...) {
va_list vl;
char buf[4096]; // 長さは適当。
va_start(vl, fmt);
vsprintf(buf, fmt, vl);
va_end(vl);
return system(buf);
}

もちろん穴には気をつけてね。
746hidehiro:03/08/01 15:25 ID:FaQAPlZw
はじめまして
コマンドプロンプトからコマンドを実行した時に
標準出力へ出力される文字数を取得する環境変数
かなにかはあるのでしょうか?
747login:Penguin:03/08/01 15:29 ID:3Dz1soT0
>>746
何がしたいの??

なんか
ls | wc -c
とかいうことじゃないよな?
748ぼるじょあ ◆yBEncckFOU :03/08/02 04:56 ID:GfRe8vK7
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
749login:Penguin:03/08/02 10:14 ID:2rmp9gin
(・∀・)renice!
750login:Penguin:03/08/03 20:31 ID:q7iiqNK4
>>747
ターミナルの横幅では?
751login:Penguin:03/08/04 03:03 ID:e3p0qvvk
コラムス!
752login:Penguin:03/08/08 11:52 ID:mg5o8ebS
(・∀・)renice!
753login:Penguin:03/08/09 08:18 ID:23zZMeDy
ああ・・・なんてレベルが低いんだ・・・
754login:Penguin:03/08/12 11:33 ID:4MGXav2e
(・∀・)renice!
755login:Penguin:03/08/14 00:36 ID:qFFLWU8R
Cでネットワークプロいグラム書いてますけど質問です。

IPアドレスから名前に変換するとき、今一番トレンディな方法は
いったいなんでしょうか? getnameinfo を使うのがベストなの?
756login:Penguin:03/08/14 02:26 ID:gJhrJeKX
>>755
gethostbyaddr
かな。
$ man gethostbyaddr
で関連関数が出てくるよ
757login:Penguin:03/08/14 19:00 ID:qFFLWU8R
Cでネットワークプログラム書いてるけど質問だ!

動作中、ずっとlisten()してるソケットを作りました。
このプログラムが動作中は問題ないんですが
Ctrl+C等で不用意に止めて、もう一度動かすと
bindでエラー(EADDRINUSE :Address already in use)
となって待ち受け出来なくなります。
このときnetstatでポートを見ると TIME_WAIT とあるので
そのポートが自然に消滅するのを待てばいいのですが

こんなことをしなくても強制的に再利用したいのですが
どうしたらいいでしょうか?
setsockoptでなんか適当に設定するの?SO_REUSEADDR?
758login:Penguin:03/08/14 20:03 ID:imXzk7pa
> setsockoptでなんか適当に設定するの?SO_REUSEADDR?
そうそれ。
759login:Penguin:03/08/14 20:54 ID:OZhN5Fs9
signal()で処理だろ。
760login:Penguin:03/08/14 20:56 ID:imXzk7pa
>>759
signalで処理しても
> このときnetstatでポートを見ると TIME_WAIT とあるので
この状態は防げない。
761login:Penguin:03/08/14 23:57 ID:EZZe4dzO
>>757
int flag = 1;
setsockopt(fdsocket, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));
fdsocketはsocket関数で取得したsocket descriptor。
762login:Penguin:03/08/15 15:07 ID:VuCLTiPS
>>758,>>761
(゚∀゚)サンクスコ

うまく動かんなーと思ってたらflag=1を忘れてたぜエヘヘ
763山崎 渉:03/08/15 22:20 ID:dil3w4kp
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
764login:Penguin:03/08/16 00:11 ID:5i+gfiwt
(・∀・)renice!
765login:Penguin:03/08/18 01:17 ID:xPxKgdAT
struct addrinfo *hoge;
char buf[256];

getaddrinfo( "hostname", 0,0, &hoge );
inet_ntop( AF_INET, &info->ai_addr, buf, 256);
printf( "%s\n", buf );

こンな感じで名前からIPを引きたいンだけど、うまく動かない。
inet_ntopの使い方、どッか間違ッてる?
766login:Penguin:03/08/18 01:21 ID:wDvg6Ni/
>>765
printf("%d.%d.%d.%d\n", buf[0], buf[1], buf[2], buf[3]);
じゃないのか?
767766:03/08/18 01:48 ID:wDvg6Ni/
失礼とちったっぽ。
768766:03/08/18 02:08 ID:wDvg6Ni/
>>765

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に渡す
769login:Penguin:03/08/18 02:50 ID:X8KH6Enz
>>765,>>768
ちなみに、終了時には
freeaddrinfo(ai);
を処理するべきかな。
770766:03/08/18 03:06 ID:wDvg6Ni/
>>769
一回しか実行しないなら、別にやらなくて良いよ。
何度もgetaddrinfoのコールを繰り返す可能性を考えるなら、
freeaddrinfoを処理することを考慮すべき。

解る人には解る言い方だと、
シングルトンなものの場合は、わざわざfreeせんでよろしい。
771login:Penguin:03/08/19 03:35 ID:LWYDhLjX
>>768
(゚∀゚)サンクスコ
やっぱヘッダをちゃんと見なきゃダメだね〜

構造体の宣言が、何がどこにあるのか って
みんなどうやって調べてる?
地道に /usr/include をgrepしてる?
なんていうか、構造体の宣言と、それを使っているところと、
ごっちゃになっちゃって調べるのがすごく大変じゃない?
どう?
772login:Penguin:03/08/19 04:17 ID:v6fEt28y
>>771
漏れは大抵manをみるが。。grepしてみるときもあるけど、別に地道でもないだろ?
grep -r sockaddr_in /usr/include って地道か・・・?
773login:Penguin:03/08/20 16:14 ID:0pNGqgqP
-pg オプションつけて gprofで見ても 処理時間が全部0なのは
なんででしょう?
関数呼び出し回数だけじゃどこに負荷がかかってるかわかんない。

もしかして fork()の子はで処理時間が計測されないとか?
774login:Penguin:03/08/25 13:01 ID:q192lGDp
>fork()の子はで処理時間が計測されないとか?
じゃない? さもなければfork()した中で開始時刻と終了時刻を出力するとか。

蛇足だけど、 コンパイラを変えると-gオプションとかうまく動かないことがあるね。
gcc3.xだけインスコしてgdbを変えなかったら、ソースファイルが見つからんとか言われた。
775login:Penguin:03/08/29 10:11 ID:DokghWbk
インラインアセンブラや組み込み関数つかって、SSE2のコード作れるCありますか?
intelコンパイラ以外でキボンヌ
776login:Penguin:03/08/29 14:23 ID:+Ii5K2eY
>>775
最近のgccも使えるはず。
777login:Penguin:03/09/02 10:04 ID:KpUKip/J
  _、_ 
( ,_ノ` )    777
     ζ
    [ ̄]'E
.      ̄
778login:Penguin:03/09/04 18:03 ID:FHcUI8Nh
(・∀・)renice!
779login:Penguin:03/09/09 03:44 ID:wDUOST0N
>>774
>蛇足だけど、コンパイラを変えると-gオプションとかうまく動かないことがあるね。
>gcc3.xだけインスコしてgdbを変えなかったら、ソースファイルが見つからんとか言われた。
コマンドラインで
$ gdb -d ディレクトリ名
って指定するか、gdbコマンド内で以下のように
(gdb) directory ディレクトリ名
すればいいのでは?
780login:Penguin:03/09/14 14:08 ID:Y8kxOv2d
(・∀・)renice!
781login:Penguin:03/09/19 00:26 ID:KnTrMiuH
<regex.h> の関数なんですが、

  int 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 つ目の引数って存在意義がないと思うんですが、
複数のマッチ位置を全部返すようにはできないんでしようか。

よろしくお願いいたします。
782login:Penguin:03/09/19 00:27 ID:KnTrMiuH
あ、&reg が ® に化けてしまいました。すみません。
783login:Penguin:03/09/19 01:18 ID:eWuAESL5
>>781
そんなもんらしい。
nmatchの効果については
http://www.aihara.co.jp/~junt/program/regex.html
とかに書いてあった。
784login:Penguin:03/09/19 01:27 ID:KnTrMiuH
>>783
どうもありがとうございました。
() を含んだ部分正規表現というもの?(詳しくないので違ってたらすみません)の
どれにマッチしたかが配列に返される、ということなんですね。
785login:Penguin:03/09/22 20:54 ID:HF5ZnEZU
RHL を使っているのですが、 syslog で LOG_DEBUG をパラメーターに与えたときの
ログメッセージはどのファイルに書き込まれますか?
テキストでは /var/log/debug となっていたのですが、該当するファイルがないもので。

LOG_INFO だと /var/log/messages に書き込まれています。
786login:Penguin:03/09/22 22:01 ID:jpPJqFHH
>>785
syslog.confの設定による。
/var/log/syslogあたりに落ちてない?
787login:Penguin:03/09/23 01:59 ID:wn/KYk6V
Linuxで、実行中のプログラムのファイルの絶対パスを知る簡単な
方法はないでしょうか?
今はmainのargv[0]から自分の名前を取ってきて、それに対してpopen
ストリームにwhichコマンドを流す事で絶対パスを取ってきていますが、
もっと簡単で確実な方法がありましたら教えてください。
自己参照を行うプログラムなので、どうしても知る必要があります・・
788login:Penguin:03/09/23 04:39 ID:OLVM2aZF
>>787
/proc/self/exe が簡単確実だが、Linux 固有。
Unix 一般に移植したいなら自己参照をあきらめたほうがいい。
789login:Penguin:03/09/23 05:06 ID:2y799NSB
>今はmainのargv[0]から自分の名前を取ってきて、それに対してpopen

/proc以下を参照するより速くて簡単な気がするなぁ。
/var/lock/subsys/とかにpidファイルとかロックファイルなんかを置いて排他制御してると
こけた後が面倒かと思って、/proc以下のpidをスキャンし実行ファイルのフルパスを
取り出すコードを書いたことがあるよ。

でもopendir()とかreaddir()を使って長ったらしいので、冒頭の方法のほうが簡単で美しいと思われ。
但し、当然のことながら、popen()で開いた先に情報を流すように書かれたソフトしか対応できない
から不自由といえばそうかも。
790login:Penguin:03/09/25 12:24 ID:zVZpqnRh
Unix 板にある vim スレッドを見てて思ったのだけど、オープンソースソフトウェアのコードの質を
評価するスレッドがあったらおもしろいのでは?
このスレでこんな話をするのは微妙にスレ違いかもしれないが。
791login:Penguin:03/09/25 14:07 ID:7PKpYukU
>>790
いいだしっぺ(ry
792login:Penguin:03/09/25 17:09 ID:FN6PNMc8
(・∀・)renice!
793login:Penguin:03/09/25 17:54 ID:CHI7SxAC
http://www.zdnet.co.jp/news/0307/02/nebt_04.html
Apacheコードの品質は商用ソフトと同程度
794login:Penguin:03/09/25 18:28 ID:OvVti3qw
>>793
>欠陥率が同程度ということは、オープンソースソフトはスタート時は
>プロプライエタリなソフトと同じくらいの完成度であることを意味するが、

詭弁だな。
Apatcheは例外的に需要があったというだけで、オープンソースソフトウェア
全てに対し当てはまるわけではない。
いくつかのオープンソースソフトウェアに対し、同じ様な調査を
繰り返せば悲惨な結果になることは想像に難くない。
795login:Penguin:03/09/25 21:08 ID:eArqU2g8
悲しいけど同意
796login:Penguin:03/09/26 23:04 ID:Y8/LJVvS
Texてバグ発見すると、賞金もらえるってホント?
しかも前回発見された時の賞金の倍になってくとか。
でも、現在までに3つしかみつかってないとか。
Unix板のトリビアスレでみかけたんだが。
それだけ完成されたコードってことなんですかね?
797login:Penguin:03/09/27 00:13 ID:DuC3AJuD
バグと言って報告しても仕様とされてしまうからね
798login:Penguin:03/09/28 13:54 ID:iv6k0XYL
ねえねえ、今度リナザウ買ってプログラミング始めようと思うんだけど、それって正解?
799login:Penguin:03/09/28 20:39 ID:tTh3N0ux
>>798
ご自由に。
800login:Penguin:03/10/13 00:59 ID:VcU5GyRD
800ゲッチョオオオオ
801login:Penguin:03/10/15 00:10 ID:WteJLNwE
弾幕キタ━━━━(゚∀゚)━━━━!!!!!!??
ttp://user.ecc.u-tokyo.ac.jp/~s31552/wp/bpo/
802login:Penguin:03/10/26 00:44 ID:rFeAGc7C
mozillaにシステムコールを飛ばしてページを読み込ませるプログラムを
作りたいのですが、
mozillaが次々、起動されていっていまいます。
立ち上げた、mozillaの同一タブ内へページの読み込みを指定したいの
ですが、どうすればいいでしょうか?
803login:Penguin:03/10/26 00:52 ID:RyP2AbXB
>>802
mozilla --help
-remoteで目的を達成できるはず。
804login:Penguin:03/10/26 00:54 ID:5q8AKgF4
>>802
http://www.mozilla.org/unix/remote.html
あたりの機能が使えないか検討。
805login:Penguin:03/11/06 21:38 ID:IDhTYBmO
806login:Penguin:03/11/15 13:56 ID:2o75E3XL
forkってグローバルな変数を共有できたりとか出来るんですか?
807login:Penguin:03/11/15 15:52 ID:mzbZHTgK
>>806
(゚∀゚)できない
808login:Penguin:03/11/15 22:29 ID:BWJ3qu85
>>806
forkはできないけど、スレッド(pthread)なら可能。
809login:Penguin:03/11/16 00:04 ID:q7HsnD3J
Javaで自分のPCのIPアドレスを取得したいんですが、InetAddress.getLocalHost() して getHostAddress()を使用 すると127.0.0.1のローカルループバックしか取得できません。
ifconfigでeth0に割り当てられているIPアドレスを取得したいのですが・・・。
試しに同じコードをWindowsで動かしたらちゃんとLANカードに割り当てられたIPアドレスが表示されました。
Javaでeth0に割り当てられているIPアドレスを取得する事ってできるのでしょうか?
810login:Penguin:03/11/16 02:26 ID:UocxIZFD
>>809
Linux上での名前解決の設定が"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
811809:03/11/16 13:32 ID:q7HsnD3J
>>810
レスありがとうございます。
/etc/hostsに直接記入した場合、IPアドレスが変更になった時はいちいち書き換えなければならないのではないでしょうか?。
動的にIPアドレスが割り当てられている環境なので、できれば自動で取得する方法を知りたいのです。
ifconfigなどでは表示されているので、なんらかの方法があると思うのですが・・・。

Linux初心者なもので、もし見当違いな事を言っていたら申し訳ないです。
812810:03/11/16 16:14 ID:jLgv/+o8
>>811
以下のページの"DynamicDNS"を参照
http://www.nsknet.or.jp/~kamichan/linux/installdiary/dns.html
813login:Penguin:03/11/17 18:18 ID:R6kCcdNZ
forkした子プロセスをpipeでつないでstdoutを非同期に取りたいのだけど
selectが Bad file descriptorとか言って怒ってる (;つД`)
selectが使えないと相手のcloseを知るタイミングもSIGCHLDだけで複数パイプのどれだか分からず…
神様助けて下さい。(-人-)
814login:Penguin:03/11/17 18:47 ID:R6kCcdNZ
出来たよ(;´Д`)
815login:Penguin:03/11/23 03:57 ID:lcDeSyj7
RedHat なのですが、あるプログラムを実行させたときに、かかった時間だけでなく、
メモリをどのくらい消費したのかとまで調べる方法はありますか?
816login:Penguin:03/11/23 19:50 ID:wjjvLLiv
>>815
やる。
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

いじょ。
817login:Penguin:03/11/23 21:33 ID:wjjvLLiv
WideStudio + Rubyプログラミングめも

WSCvifieldで、数値のみ入力にする浮動小数点編

以下のプロシージャをトリガ 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
818login:Penguin:03/11/24 00:32 ID:aGsdOEbv
Linuxでのプログラムの勉強に
GNUソフトウェアプログラム と C++プログラミング入門
を購入してきたんですけど方向として間違っていますか?

一つ目の目標としては、エディタを作ってみることです。
参考にエディタのソースを探しているんですけど、見つからないですw。
向いてないのかなぁ。。。
819login:Penguin:03/11/24 00:46 ID:ouo7pXOj
>>818
viのソースとかemacsのソースとかedのソースとか、その辺に転がってる罠。
820login:Penguin:03/11/24 01:16 ID:aGsdOEbv
edとviのソースを拾ってきたものの
src.rpmの状態からソースを取り出すのには
どういった手順が必要なのか。。。
本見てもインストールの仕方ばかりで。。。
もちょっと頑張らなくちゃ。
821820:03/11/24 01:56 ID:aGsdOEbv
結局rpmからのソースの取り出し方が判らない。
情報の集め方が間違ってるのか。。。
822login:Penguin:03/11/24 02:00 ID:/rv1sO3H
823820:03/11/24 02:05 ID:aGsdOEbv
>>822
有り難うございます。
rpmの中身が出てきました。
これで勉強できそうです。
824login:Penguin:03/11/24 03:32 ID:7bs+maWP
src.rpmならrpm -iでインストールすればソース(とSPEC)がでてくるから
わざわざrpm2cpio使うまでもない
825login:Penguin:03/11/24 09:11 ID:DPOPBf2o
>>816
とりあえず、使ってみます。
どうもです。
826login:Penguin:03/11/25 14:48 ID:VkzcVBqK
下らない質問スレですべき質問かもしれませんが、
a a.orig b b.orig
と4つのファイルがあって、diff をつかって複数のファイルから差分を一度に表示させることはできますか?

今は、
$ diff -u a.orig a > foo
$ diff -u b.orig b > bar
とやって foo と bar を連結させているという非常に回りくどいことをやっているのですが、
もっと簡単にできないものかと。
827login:Penguin:03/11/25 19:50 ID:YPqveVlU
>>826
ディレクトリ別にして、-urとかじゃだめなの?
例えば、ディレクトリhogeにaとbを配置し、
ディレクトリhoge.origにa.origをaに名前をかえて、b.origも同様にして、
$ diff -ur hoge.orig hoge > hoge.diff
するとか。
828login:Penguin:03/11/27 08:46 ID:JsWTr2uN
v4lデバイスから取り込んだ動画をmpeg4で圧縮して
最終的にはネットワーク配信をできるようなものを作りたいんですけど
mpeg4を扱えるようなライブラリ等はどのようなものがありますか?
829login:Penguin:03/11/27 11:03 ID:Q5CHQ0kV
>>826
やる。

#!/bin/bash
for i in `ls | grep -v '.orig$'`
do
if [ -f $i.orig ] ; then
diff -u $i.orig $i
fi
done
830login:Penguin:03/11/28 00:12 ID:NrG8nS+O
>>828
>v4lデバイスから取り込んだ動画をmpeg4で圧縮して
>最終的にはネットワーク配信をできるようなものを作りたいんですけど

既に無かったっけ?ストリーミング鯖
831login:Penguin:03/11/28 14:24 ID:0uPTkcP3
videolanとかはどうなの?
http://www.videolan.org/
832login:Penguin:03/11/28 16:47 ID:reTvTi2f
>>787
遅レスだけど、実行ファイルの中に文字列定数として持っとくってのは不可?
ライブラリの場所 (/usr/lib/foo-1.0/ とか) がコンパイル時に決定される
ソフトウェアがあるよね。あれと同じ要領で実行ファイルがインスコされる
絶対パスをコンパイル時に決めちゃうわけ。Makefile だとこんな感じ。

bindir = /usr/bin

foo: foo.c
  gcc -o foo -DEXEFILEPATH=$(bindir)/foo foo.c

install:
  install -m 755 foo $(bindir)/foo

プログラム中ではシンボル EXEFILEPATH を見れば実行ファイルの場所が分かる。
833login:Penguin:03/11/29 21:57 ID:+eWQ4cVT
>>832
>ライブラリの場所 (/usr/lib/foo-1.0/ とか) がコンパイル時に決定される
>ソフトウェアがあるよね。あれと同じ要領で実行ファイルがインスコされる

automakeとかautoconfとかのこと?
834login:Penguin:03/11/29 22:32 ID:ymOcP7gS
>>833
俺は832じゃないけど、Automakeは
$ make DESTDIR=/hoge/fuga install
のようにインストール時に(というかバイナリパッケージ作成時)に
インストール先を変更することが可能になるように設計されているから、
AC_DEFINE_UNQUOTEDなんかを使ってconfig.h(または-D)で定義しても
インストール時に変更される可能性があって、問題あるかも。

だから、Makefileに書けってことじゃない?
835832:03/11/30 08:09 ID:IEIlDXip
いやいや、そこまで深い意味はなかった。要するに、実行ファイルの場所を
コンパイル時に決めて、実際にそこにあると仮定してプログラムを書けば?
という提案だった。
836834:03/11/30 09:24 ID:pSa56DZI
そういうことか。深読みしすぎた。
そうなると、元質問者のargv[0]から求めるっていうのは、
/procへの依存性も無いので、悪くない気がするね。
いずれにせよinstall前のデバッグがちょっと面倒そうだけど。。。

# 俺は自己参照型のプログラムを書いたこと無いんでよく分からん。
837832:03/11/30 10:46 ID:IEIlDXip
自分を書き換えるプログラムって Unix ではあんまり見ない気がする。

ひょっとして、作ろうとしているのはウィルス?(w
838832:03/11/30 10:48 ID:IEIlDXip
× 自分を書き換える
○ 自己参照を行う
839login:Penguin:03/11/30 15:49 ID:TjROfage
自己書き換えが必要なプログラムって最近の高性能PCで必要?
840832:03/11/30 15:59 ID:IEIlDXip
なんか8ビットCPU時代のみみっちさを連想するよねw>自己書き換え
841login:Penguin:03/11/30 17:07 ID:x2UJDG/9
>>787
#include <stdio.h>
#include <linux/limits.h>

int main(int argc, char *argv[])
{
char buf[PATH_MAX];

printf("%s's current working directory: %s\n", argv[0], getcwd(buf, PATH_MAX));
return(0);
}

詳しいことは以下を読め
man getcwd
842login:Penguin:03/11/30 17:22 ID:pSa56DZI
>>841
それって、カレントディレクトリを表示するんじゃない?
843login:Penguin:03/11/30 17:24 ID:pSa56DZI
↑すまん。そう出力されてた。
844login:Penguin:03/11/30 18:01 ID:IEIlDXip
(´∀`)おーい山田君、841のザブトン全部持ってっちゃって(w
845841:03/11/30 18:33 ID:x2UJDG/9
>>842-844
>Linuxで、実行中のプログラムのファイルの絶対パスを知る簡単な
>方法はないでしょうか?
>今はmainのargv[0]から自分の名前を取ってきて、それに対してpopen
>ストリームにwhichコマンドを流す事で絶対パスを取ってきていますが、
>もっと簡単で確実な方法がありましたら教えてください。
>自己参照を行うプログラムなので、どうしても知る必要があります・・
>>787は、結局のところ自身のコマンドの絶対パスが知りたいんでは?違うのか?
846login:Penguin:03/11/30 19:18 ID:IEIlDXip
そだよ。それが分かってて841のようなコードを示すのは何故?
847login:Penguin:03/11/30 19:59 ID:x2UJDG/9
>>846
間違った!!!!!w
これってPATHで参照できるコマンドの絶対パスが知りたいってことか。
んなもんシステムコールやライブラリには無いと思うが。
そんなことする作りが変では無いか?
848842:03/11/30 20:50 ID:pSa56DZI
俺てっきり釣られてしまったと思って欝だったんだが(w

>>847
だからウィルス?って予想もありだよね。
849login:Penguin:03/11/30 21:31 ID:x2UJDG/9
>>848
>だからウィルス?って予想もありだよね。
いぁ、それはわかんないけど。
(もしそうだとしても、それだけではウィルスとして使い物にならん)
PATH次第によっては見つかったり見つからなかったりするんで
やはり作りが変?だと思う。
(自身のコマンドが絶対PATHを知っていると何が幸せなのかわからんし)
それに現在popen、whichで出来てるんだったらそれでいいじゃんって感じ。
850login:Penguin:03/11/30 22:07 ID:xWqa/CxV
設定ファイルを自分と同じディレクトリに置きたいとか。
DOS時代の作法にあったなあ…
851login:Penguin:03/11/30 22:44 ID:x2UJDG/9
あっそれから>>787について思ったのは、誰かが意図的に
PATHの先頭の方に同名の偽コマンドを置けば
在るようにみせることが出来るよ。
脆弱性ハケーンかな?w
852login:Penguin:03/11/30 22:45 ID:IEIlDXip
ふと思ったんだけど、whichコマンドに相当するコードを自前で実装しても
大したステップ数にはならない予感。
853偽which作ってみた:03/11/30 22:54 ID:x2UJDG/9
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <linux/limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>

int main(int argc, char *argv[])
{
char *ppath, *ptr;
char buf[PATH_MAX];
struct stat st_stat;
int ret;

if(argc != 2){
fprintf(stderr, "Usage: %s command\n", argv[0]);
return(1);
}
if((ppath = getenv("PATH")) == NULL){
fprintf(stderr, "PATH not exist\n");
return(1);
}else if(strlen(ppath) == 0){
fprintf(stderr, "PATH is empty\n");
return(1);
}

ptr = strtok(ppath, ":");
while(ptr){
854偽which作ってみた:03/11/30 22:54 ID:x2UJDG/9
strncpy(buf, ptr, PATH_MAX-1);
strncat(buf, "/", PATH_MAX-1-strlen(buf));
strncat(buf, argv[1], PATH_MAX-1-strlen(buf));
ret = stat(buf, &st_stat);
if(ret == 0){
if(S_ISREG(st_stat.st_mode)){
printf("%s\n", buf);
break;
}
}else if(ret == -1){
if(errno != ENOENT){
perror("stat");
break;
}
}
ptr = strtok(NULL, ":");
}
if(ptr == NULL){
fprintf(stderr, "%s not exist\n", argv[1]);
}

return(0);
}
855偽which作ってみた:03/11/30 22:57 ID:x2UJDG/9
これは、勢いで作成したんでかなり端折っています。
権限とか全然チェックしてません。
856login:Penguin:03/11/30 23:07 ID:IEIlDXip
(゚Д゚)ウマー
857login:Penguin:03/11/30 23:18 ID:W0msD5oz
whichを使う前にargv[0]が絶対パスかどうか調べた方がいい。
まあexecve(2)の第一引数とは違う可能性もあるんだが。(UNIXで完璧なのを作るのは無理)
ちなみにldd, ld.soに参考になるcodeがある。
858login:Penguin:03/11/30 23:34 ID:x2UJDG/9
>>857
>whichを使う前にargv[0]が絶対パスかどうか調べた方がいい。
argv[0]にbasenameをかませばいいだけ。

>まあexecve(2)の第一引数とは違う可能性もあるんだが。(UNIXで完璧なのを作るのは無理)
argv[0]は変更できるんでそこんところは大目にみてくれ。

>ちなみにldd, ld.soに参考になるcodeがある。
さいですか。
859login:Penguin:03/12/01 13:41 ID:MB98Kdx1
ご存知の方がいらっしゃいましたら教えて欲しいのですが、
X上で表示されている各ウィンドウを非表示にしたりまた表示したり
(XMapWindow?)することを他のアプリケーションから行いたいのですが
どうすれば良いのでしょうか。

バーチャルデスクトップが使えるウィンドウマネージャの
ソースとか見ると分かるのかもしれませんが、
僕には太刀打ちできませんでした。

キーワードだけでも教えていただけるとありがたいです。
よろしくお願い致します。

#Xはスレ違いだったらごめんなさい。
860login:Penguin:03/12/01 22:47 ID:ihH/I9Em
>>859
ム板にXlibスレがあったけど、最近は保守だけみたいだから、、、
自慢じゃないが俺には分からん。
861login:Penguin:03/12/01 22:58 ID:8njOyIGV
#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>

int main(int argc,char *argv[])
{
char *display;
int ch;
Display *disp;
Window w;

w=0x1c01ad0;

display=getenv("DISPLAY");
if (display!=NULL) {
disp=XOpenDisplay(":0.0");

XUnmapWindow(disp,w);
XFlush(disp);

ch=fgetc(stdin);

XMapWindow(disp,w);
XFlush(disp);
} else {
fprintf(stderr,"Environment variable DISPLAY is undefined\n");
}
}
862861:03/12/01 23:01 ID:8njOyIGV
XのウィンドゥはIDさえわかれば他のプログラムから自由にいじることができる。

上の例だと、 w=0x1c01ad0; となっているのがウィンドゥIDで、
これはxwininfoで
xwininfo: Window id: 0x1c01ad0 (has no name)
みたいに表示されている。

ここを書き換えてコンパイル、実行すれば、xwininfoで調べた
Windowが消える。
なにかキーを押せば復活する。

問題は、このウィンドゥIDをもっとちゃんとした方法で知ることであるが
これはプログラムの用途によって方法が異なってくると思うので
用途にあった方法を考える。
863login:Penguin:03/12/01 23:59 ID:I6e583iL
>argv[0]にbasenameをかませばいいだけ。
他ディレクトリへの相対パス指定されたら駄目でしょ
864login:Penguin:03/12/02 00:52 ID:IGK1dN5i
E. レイモンドの"The Art of Unix Programming"を早速よんだ人っています?
865login:Penguin:03/12/02 03:56 ID:jmEuRE+2
文芸的UNIXプログラミング?
866login:Penguin:03/12/02 07:05 ID:0RsR6Dsz
867login:Penguin:03/12/02 07:19 ID:UbgA1PcH
868867:03/12/02 07:25 ID:UbgA1PcH
もしかしたら、glibcにもrealpathがあるかもしれないが、
私はLinuxユーザでないので知らない。

例えばSolarisのrealpathでは、相対パスが与えられた時には
絶対パスが返されないことがあるらしいので、glibcにrealpath
があったとしても、その辺の振る舞いをチェックする必要がある
でしょう。
869login:Penguin:03/12/02 07:54 ID:0RsR6Dsz
ありますね。
REALPATH(3) Linux Programmer's Manual REALPATH(3)
NAME
realpath - return the canonicalized absolute pathname
870859:03/12/02 12:02 ID:SNYAPZHJ
>861-862

解説、どうもありがとうございます。
サンプルプログラムまで頂けて感激です。
こんなに短いコードで済むなんてびっくりですね。
なんかの本に「メカニズムとポリシーをはっきり区別してるところが
Linuxの設計の優れたところだ」と書いてあったのですが、
もちろんこのことはXにも当てはまるわけですね。
大げさかもしれませんが、そんなことを感じました。

今、ちょっと手元に環境が無いのですぐ試せないのが残念ですが、
あした、早速試して見ます。

>860
レスつけてくれるだけでも充分ありがたかったです。(w
871login:Penguin:03/12/02 12:47 ID:y4gvX7HI
>>862>>870
例えば

$ xwininfo -tree -root | grep -i kterm

とすれば kterm という名前のウィンドウを全部リストアップできるね。
とゆーことで xwininfo のソースを見れば参考になるんじゃないかな。
xprop コマンドのソースも参考になりそう。オプソまんせー(w
872862:03/12/02 13:03 ID:SNYAPZHJ
>871

どうもありがとうございます。
xwininfoってこういうことも出きるんですね。
ウィンドウをクリックする使い方しか知りませんでした。
一度はmanでちゃんとチェックすべきですね。

ソースも見てみます。
#ただ、毎回の事ながらわからなくて挫折してしまうのですが(w
873login:Penguin:03/12/02 13:08 ID:0RsR6Dsz
>>871
login時にiconにしておきたいのに、-iconicがちゃんと働かないbiffを、
それでid調べて無理やりicon化したことがあったな。
874login:Penguin:03/12/02 13:14 ID:y4gvX7HI
875login:Penguin:03/12/02 13:17 ID:y4gvX7HI
>>872
例えば xwininfo -root -tree を実行したときにどういう流れで処理が進むのかを
追いかけてみるといいよ。必要な部分をコピペしてその処理の流れを再現する
プログラムを書いてみるのもいい。
876login:Penguin:03/12/04 00:43 ID:6iyb4CU8
C でプライベートな関数(自分が定義されているファイル内でしか参照されてない)の
プロトタイプ宣言をヘッダファイルでなく定義されているファイルに
一気に移したいんですけど、
プライベートな関数を調べてあげてくれるツールとかありますか?
ちなみに GNU で開発してますが ld にこんな機能あったらいいのに。
877login:Penguin:03/12/04 00:48 ID:rKCakjnk
grep static *.h とか?(w
878login:Penguin:03/12/04 22:28 ID:sWWDYweq
cat `grep static *.h` dest.c
879login:Penguin:03/12/06 23:34 ID:wQbZ0jXD
>>876
>C でプライベートな関数(自分が定義されているファイル内でしか参照されてない)の
>プロトタイプ宣言をヘッダファイルでなく定義されているファイルに
>一気に移したいんですけど、
コピペすればいいじゃん。

>プライベートな関数を調べてあげてくれるツールとかありますか?
無い。必要ないから。

>ちなみに GNU で開発してますが ld にこんな機能あったらいいのに。
いらないと思うが。

ちなみに関係無いけどlddで共有ライブラリへの依存関係を調べられる。
880login:Penguin:03/12/07 22:33 ID:zLB/2gLG
>>879
> ちなみに関係無いけどlddで共有ライブラリへの依存関係を調べられる。
マジ関係ない
881login:Penguin:03/12/11 12:46 ID:rNX2TzV0
質問です
XFree86上で動くゲームを作りたいのですが、
WindowsのAPIにおける
PeekMessageみたいな関数はXLibにありますか?
それと、60FPSにするために60分の1秒ウェイトする方法を教えてください。
おねがいします。
882login:Penguin:03/12/11 18:45 ID:8lyIoHlg
>>881
> PeekMessageみたいな関数はXLibにありますか?
pollとかselectのことかな?

> それと、60FPSにするために60分の1秒ウェイトする方法を教えてください。
usleep じゃだめなんか?

ゲームなら、zsnesのソース見て参考にしたらどうかな。
883login:Penguin:03/12/11 23:59 ID:qZwK1/aw
usleepよりかはnanosleepのほうがいいかと思われ。POSIXだし。

しかしXであればXtAppAddTimeOutなんかでタイマーをセットして
コールバック関数をよんでもらうほうがX風だったり。

GtkとかQtにも同様の関数はあると思われ

画面リフレッシュに同期して描画したいというなら
...ちょっとわからん。
884login:Penguin:03/12/12 04:00 ID:p1r0xxMa
>>882
881が、どの程度の精度を求めているかによるんだけど、
usleep使うと描画時間分ずれていくから、オトゲー系はきつい。

俺は、setitimerつかったよん。

とりあえずなら、SDLつかうのも楽かも。
885login:Penguin:03/12/12 20:01 ID:xTw+tehD
make ファイルの書き方とかってどこで勉強すればいいのですか?
886login:Penguin:03/12/12 20:21 ID:kKRUSP86
887login:Penguin:03/12/12 20:39 ID:vXDic0I4
$ info -f make
888login:Penguin:03/12/12 23:32 ID:0mhoD5bA
>>887
日本語で頼むわ
889login:Penguin:03/12/13 00:14 ID:q8/xqIaE
890!888:03/12/13 00:38 ID:LET2eCCS
これをもさがしてたよありがと〜
ftp://ftp.ascii.co.jp/pub/GNU/make/make-jp-3.79.1.tgz
891881:03/12/13 21:47 ID:O4yV8qD+
レスありがとうございます。
色々試してみましたがウェイトはsleepよりWindowsにあるtimeGetTimeみたいな関数が欲しいです。
誰か知りませんか?
892login:Penguin:03/12/13 22:37 ID:DMJyYxYj
893login:Penguin:03/12/13 22:37 ID:DMJyYxYj
>>891
ビジーループで休むって事ですか?
894login:Penguin:03/12/13 22:44 ID:CXIgy1ww
895881:03/12/14 10:39 ID:J1jDGD1W
WindowsのtimeGetTimeなら
while(1) {
if( timeGetTime() - oldtime > 1000/60 ) {
画面描画
}

while( PeekMessage(略) ) { // イベントがあるか調べる
イベント処理
}
}
って感じにできるんです。
linuxだとずいぶん大変そうですね・・・諦めてWindowsでゲームつくろっかな。
896login:Penguin:03/12/14 11:00 ID:A6qOSZwn
>>895
gettimeofday使って自分でポーリングするか、
setitimer使ってシグナルでタイマーが切れたことを知らせてもらうか、
SDLなどのゲーム用ライブラリを用いるか
になるのではないかと。

いずれも秒以下の時間制御のためには使ったことないのでどの程度精度が
いいものかわからないけど。
897login:Penguin:03/12/14 11:58 ID:fdUDptKQ
>>895
timeGetTimeをgettimeofdayにそのまま変えれば
ほぼ同じロジックで組めるのだが
そのロジックだとプログラムが常に走りっぱなしになるから
ふつうはそんな組み方はあまりしない
(時間がくるまで待つ(sleepする)ように組む)

自分のプログラムだけでCPUを100%使いきらないための配慮だが
このあたりはWindowsでも同様と思うのだが。

ちなみにgettimeofdayで同様に組むと10ms程度の精度
(タスクスイッチの時間単位)になると思う。
2.6カーネルだとタスクスイッチが1ms単位になっている気が
しないでもないが。
898login:Penguin:03/12/14 12:11 ID:fdUDptKQ
> PeekMessageみたいな関数

イベントを調べる関数として、XNextEvent等があるが
イベントがくるまで処理がとまることのないものとして
XCheckWindowEventあたりがいいかも
899login:Penguin:03/12/14 12:30 ID:fdUDptKQ
連続スマソ
Xでそれらしいように組むにはこんな感じか
画面処理ルーチン() {
// イベントチェックはメインルーチン側で行う
// 1/60秒ごとにまわってくるようにするので時刻チェックは不要
画面描画
}
int main() {
...いろいろ処理...
// 割り込みの設定
sigemptyset(&smask);
sigaddset(&smask,SIGALRM);
sigtocall.sa_handler=画面描画ルーチン;
sigtocall.sa_mask=smask;
sigtocall.sa_flags=0;
sigaction(SIGALRM,&sigtocall,NULL);
// タイマーの設定
itimeval.it_interval.tv_sec=0; // タイマ間隔
itimeval.it_interval.tv_usec=16667; //およそ1/60s
itimeval.it_value=it_interval; //最初に割り込みがかかるまでの時間
setitimer(ITIMER_REAL,itimevak,NULL)
// メインルーチン
while (終了フラグ=0) {
// イベント処理
XNextEvent(略);
}
}
900login:Penguin:03/12/14 17:24 ID:G6zew8S8
あるファイルの全角文字の ”。”を改行ゴードに変換しようと思っています
下のコマンドでやってみたんですけどダメでした
なにがいけないのでしょうか?

# tr '。' '012' < FILE

901login:Penguin:03/12/14 20:09 ID:73Xfjjuv
>>900
trが多バイトに対応していないからかな?
置換ならsedとかが楽かも。
# 俺はemacsでやるかな。
902login:Penguin:03/12/14 21:40 ID:+2AOP9r5
プログラムを始めようとしてCのテキストを購入し読み込んだんですが
いざ他人のソースを読むとなるとまったく手がつきません。

考えてみるとCのテキストには自分で1から作り起こす方法は書いてあるのですが
他人のソースを読むときの取り掛かり方とかが全然乗っていませんでした
(そのためgrepの存在とかも知らなかったりした(^^; )

こういった「脇を固める技術」を得られる本などはありませんか?
903login:Penguin:03/12/14 21:45 ID:CALh7Otq
>>902
RubyHackingGuideとか
904login:Penguin:03/12/14 23:05 ID:TmFBnZWo
>>902
C じゃなくて何かスクリプト言語から始めるのはどう?
Java とか。

Cは初心者向きじゃないよ。
905login:Penguin:03/12/14 23:16 ID:WylokYMj
>>906
次にお前は 「Javaはスクリプトじゃあありません!」 と言う
906login:Penguin:03/12/14 23:40 ID:KWkCvRBM
>>901
ありがとうございます。とりあえず本屋に行ってみます

>>902
>Cは初心者向きじゃないよ。
もう読み終わってポインタとか構造体とかファイル入出力とか
使えるようになっちゃったよ..._| ̄|○


まぁ、完璧マスターというわけじゃないけど
907login:Penguin:03/12/14 23:54 ID:hPxKBa60
>>906
そんなサクッとポインタが使えるようならセンスあるよ。
手助け不要と思われ。
908login:Penguin:03/12/14 23:59 ID:AS4kPxx1
適当な小さめのGPLプログラムで,#ifdef WIN32とかのウザい構成が少ないやつを
いじってみればいいのでは?
書き換えるためには自然とソースを探り回ることが必要になるから勉強になる.
(練習なんだから,意味のある書き換えをする必要は別になくて,
 やたらHello Worldを出力させるとか,コマンドラインオプションの種類を増やしてみるとか)
909login:Penguin:03/12/15 00:10 ID:gAKoWWT5
>>902
http://i.loveruby.net/ja/misc/readingcode.html
ここの一番下の図みたいなのが簡単に出力できるツールはないのかな。
SXTってのはWindowsでしか使えないみたい。
910login:Penguin:03/12/15 00:23 ID:+UxP4Bdi
>>907
というか使えるように多大な労力を払った後なわけで…
でも我流なんで知識の偏りっぷりがどうにもならない
911login:Penguin:03/12/15 00:29 ID:JVPkHolL
912login:Penguin:03/12/15 01:31 ID:d+ZhqAkq
>>910
それなりのCの知識があるのに
本が読めて、ソースが読めない って在る意味あべこべだぞ・・・
913login:Penguin:03/12/15 01:52 ID:qJN+u7cK
いや、「ソースが読める」というのは
コードからその裏にある意図(そこにあるコードの必然性)を
推し量らないといけないわけで、C純粋の知識よりかは
OSの知識とか一般的な方法とか、いくらかの慣れがいる。

逆にいえばあとは「意図」を読むことに注意して周辺の知識を仕入れ
なれてくれば...って、これはこれで大変なんだが。
914login:Penguin:03/12/15 02:14 ID:d+ZhqAkq
>>913
そんなことまとめて論じている本ってプログラミングの本と言うより心理本?
915login:Penguin:03/12/15 03:18 ID:kdgNe/Tf
とゆーか正直「そんな本は無い」と思うんだけど(w
他人の書いたプログラムはその人が好き勝手に書いてるものだから
読み手の理屈では推し量れない。もとより理屈なんて無い。
ぶっちゃけ「習うより慣れろ」としか言いようがない。

深さ優先でプログラムを読んで疑問点を解消できたときの気分って、
初めて自転車に乗れたときの「何かをつかめた感じ」に似てるよね。
「どうすればプログラムが読めますか」という質問は
「どうすれば自転車に乗れますか」という質問と同じぐらいバカバカしい。
どっちも理屈抜き。体で覚えるしかない。

全然関係ないけどプログラミングと心理学と聞いて
ワインバーグ先生の「プログラミングの心理学」を思い出した。
この本はめちゃくちゃ面白い。そー言えば他人のプログラムを読むことを勧めてた。
もっとも、この本を読んでもプログラムは読めるようにならないけどね(w
916login:Penguin:03/12/15 03:23 ID:ZWNVafxF
>>914
いや、普通のプログラム本じゃない?
プログラミングの定石を知れば、コードの意図もつかみやすくなるし。
917login:Penguin:03/12/15 03:26 ID:kdgNe/Tf
ふと思ったんだけど、
他人の書いたプログラムを読むのってデバッグと似てるよね。
ある程度の規模の自作プログラムをデバッグした経験があると
他人のプログラムを読むときにも相応の勘が働きそうな気がするけど
どうだろう。

言語にもよるけど一万行ぐらいあるプログラムを書いたことがあれば
他人のプログラムを読むのも楽になりそうな気がする。

てことで「読めるようになるまで書きなさい」という回答はどうだろうか(w
918login:Penguin:03/12/15 03:26 ID:1zJ+IaPY
というか各分野の専門書だろ。
エイホを読んでいればGNU grepのソースのdfa.cの中身は
読まなくてもおおよそ何が書いてあるのか見当がつくし、
悪魔本を読んでればOSのソースのtss.cの中身は想像できそう。
919login:Penguin:03/12/15 06:57 ID:rzegbyQF
>>918
悪魔本って何ですか?
920login:Penguin:03/12/15 23:59 ID:gA8c5nIv
>>919
A・ビアスの悪魔の辞典
921login:Penguin:03/12/16 00:39 ID:ekQmZ+iR
>>919
4.4BSDの設計と実装(俗にいう悪魔本)
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756143466

Lions’ Commentary on UNIX(俗にいうライオン本)
ttp://www.amazon.co.jp/exec/obidos/ASIN/4756118445

コンパイラ―原理・技法・ツール(俗にいうドラゴン本)
ttp://www.amazon.co.jp/exec/obidos/ASIN/4781905854
922login:Penguin:03/12/16 00:53 ID:7PlkmonT
>>902
とりあえず、UNIXマガジン連載を集めた「プログラミング・テクニック」
は、どーよ?
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4389-X.html
923login:Penguin:03/12/16 01:04 ID:7PlkmonT
あ、あとプログラミングツール的な話なら、
SOFTBANKの「Linuxプログラミング〜例題で学ぶUNIXプログラミング環境」
O'REILLY 「GNUソフトウェアプログラミング」

コンピュータの中身的な話なら、
オーム社の「Linker&Loaders」が勉強になった。
924login:Penguin:03/12/16 16:43 ID:lg2iGe9o
GtkまたはSDLベースのプログラムで、
コマンドラインオプションまたはアプリケーション自身の
ハードコーディングで、geometryを強制指定するのって、
どうやるの?
Xtベース(つまりXawやMotif)なら
-geometry 100x200+10+5 みたいなオプション指定ができるけど、
Gtk or SDL だと無理みたいなので、これに相当する方法が知りたいんです。
だれか、よろ〜
925login:Penguin:03/12/23 19:25 ID:vA5L6hbH
gtk_window_move()のdocument読んでみて。
926login:Penguin:04/01/07 22:25 ID:7IDkPX2v
>>922
こういう本ってなんでデザインがダサいんだろうね。
ま、いいけどさ。
927login:Penguin:04/01/07 23:12 ID:WoVOhRu/
>>923
薦められていた
「Linuxプログラミング〜例題で学ぶUNIXプログラミング環境」を買うつもりが、
「例題で学ぶLinuxプログラミング」って本を間違って買ってしまった...名前似すぎ!
http://www.ne.jp/asahi/yokohama/juk/LPBE/

でも、これはこれでよかったかも。(ncursesについて知りたかったので)
928login:Penguin:04/02/08 20:58 ID:F8Ufjb9R
可変引数を実装する場合、
stdarg.h と varargs.h
どっちを使うのが今風なの?
929login:Penguin:04/02/08 21:08 ID:JvIEIZfS
>>928
C99規格ではstdarg.hだったような気がする。
930login:Penguin:04/02/09 02:06 ID:QekrBuut
>>929
ア゙ディガドゥル
ゾリディャッデヴィバス
931login:Penguin:04/02/18 13:00 ID:tTG0khm7
ログをファイルに書くようにしているとき
長期運用するならlogrotateするけど
このときプログラム側ではlogrotate実行に備えて
なにをどう注意したらいいんだしょうか?

普通にfopenして書いてるとだめだよなですよね
932login:Penguin:04/02/18 13:13 ID:elwpbQ4N
>>931
普通 syslog 関数で書くような。
933login:Penguin:04/02/18 13:41 ID:NfVfptY0
>>931
logrotate 側の設定はいじんないの?
934login:Penguin:04/02/18 13:41 ID:YVUW8snZ
>>931
SIGALRMのハンドラでfopenし直しだろ。
つまりsyslogがやっていることと同じ。
935login:Penguin:04/02/18 14:09 ID:tTG0khm7
>>934
SIGALRMね
ありがと
SIGHUPだとずっと勘違いしてた
936login:Penguin:04/02/18 20:23 ID:YVUW8snZ
いや、syslogdはSIGHUPでrestartしてるけど、
あんたのはアプリの独自rotateでしょ。

SIGHUPは端末切り放しか、restartの意味だから、
別のシグナルの方がいいんじゃないの?
937login:Penguin:04/02/18 21:30 ID:tTG0khm7
>>936
いや、logrotateをつかいたいんだですよ
ローテート処理まで自分で書くのだるいしですし
938login:Penguin:04/02/18 21:52 ID:YVUW8snZ
じゃあ、syslog(3)使いなよ。
syslogd廻りが全部やってくれる。
939login:Penguin:04/02/19 09:16 ID:S0TLJ5zS
>>938
ファイルをわけたいんだけど
syslog.confの書き方がわからないんだよ
そういう使い方をする場合の説明が少ないから
940login:Penguin:04/02/19 10:04 ID:SrMq61PE
>>937
logrotate の設定でアプリを起動し直すようにしちゃだめなのか?

>>939
man syslog.conf
man 3 syslog
941login:Penguin:04/02/19 11:08 ID:YvMi/+uC
>>940
端から端まで見たよ
942login:Penguin:04/02/19 11:36 ID:9vp8HnwR
Linux 使うの止めれば?
仕事だったら会社辞めるとか・・・
なんか向いてないっぽ
943login:Penguin:04/02/20 01:53 ID:C4iV9AVa
>>906に薦められる「デーモン君のソース探検」発売記念age(要NetBSDのソースコード)
944login:Penguin:04/02/20 05:00 ID:ypw0LS60

              ┗0=============0┛
     \===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
     /三三三三三三三三三三三三三三三三三三三三\
    0 │ |∞∞∞ |::|∞∞田田田田田田∞∞|::|∞∞∞ | ::|  0
 ...[二] | ::|       |::|┏━━━━━━━━┓|::|       | ::l [二]
........|□|.│ |┌┬┐ |::|┃  /        \  ┃|::| ┌┬┐| ::|. |□|
  )三(...| ::|├┼┤ |::|┃/            \┃|::| ├┼┤| ::|`)三(´
   | ::| | ::|└┴┘ |::|┃ / ̄ ̄ ̄ ̄ ̄\ ┃|::| └┴┘| ::| | ::|
   | ::| | ::|┌┬┐ |::|┃彳 人______ ノ.┃|::| ┌┬┐| ::| | ::|
   | ::| | ::|├┼┤ |::|┃入丿ー◎-◎ーヽミ.┃|::| ├┼┤| ::| | ::|
   |: :| | ::|└┴┘ |::|┃ r   . (_ _)     )┃|::| └┴┘| ::| | ::|
   | ::| | ::|┌┬┐ |::|┃ (  ∴.ノ▽(∴  ノ ┃|::| ┌┬┐| ::| | ::|
   | ::| | ::|├┼┤ |::|┃⌒\_____ノ⌒┃|::| ├┼┤| ::| | ::|
   | ::| | ::|└┴┘ |::|┃    ┗━┛   .┃|::| └┴┘| ::| | ::|
   | ::| | ::|   ... |::|┃   . .>>942    ┃|::|      | ::| | ::|
.....┏━━━━━┓| .|┃          ......┃|::|┏━━━━━┓
.....┣┳┳┳┳┳┫|: |┗━━━━━━━━┛|::|┣┳┳┳┳┳┫
     ○    ●        ∫∬∫∬        ●    ○
     ○○  ●●      iiiii iii ii iiii       ●●  ○○
    [ ̄ ̄] [ ̄ ̄]   ( ̄ ̄ ̄ ̄ ̄)    [ ̄ ̄] [ ̄ ̄]
    |_○_|  .|_○_|     |_____|     |_○_|  .|_○_|
 ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
(    )(    )(,    )(,,    )    ,,)(    )(    )(,    )( ゚Д゚ )
945login:Penguin:04/02/20 09:56 ID:SE61JsUR
>>941も逝って良し
946login:Penguin:04/02/20 13:25 ID:zd3GjK1n
なんか荒れてるね。
947login:Penguin:04/02/20 15:12 ID:KYNvxlQW
くだ質の方で結論が出ないので、こちらにマルチする旨で
一応了解を得ましたので以下に質問させていただきます。

libxxx.aとかのライブラリに定義されてるシンボルは、もちろん
他のプログラムから使えると思うのですが、実行ファイルに定義
されているシンボルを、他のプログラムから使うことは出来るの
でしょうか?

実行ファイルをnmで見た時の関数を、自分で作ったプログラムか
らコールしたいんです。その関数を定義しているヘッダファイル
は持ってます。

というのもあるアプリケーションをベースに、そのフロントエンド
みたいなプログラムを作りたいと思っています。
で、そのベースのアプリケーションのある関数を使いたいんです
けど、ライブラリには無いんです。

ソースをコピーしちゃえば良いかも知れないですが、それだと
そのベースのアプリケーションのその関数がバグフィックスなど
で変更されたときに、いちいち自分で作ったプログラムも修正
しなおさなければいけません。
これをしたくないのです。
948login:Penguin:04/02/20 15:23 ID:SE61JsUR
ライブラリになってない関数が、
> そのベースのアプリケーションのその関数がバグフィックスなど
> で変更されたときに、いちいち自分で作ったプログラムも修正
> しなおさなければいけません。
のようなことに対して不変という仮定がそもそも…

おたずねのことについては、ld.soがやっているようなことをやれば可能かと、
しかし呼び出している関数に対してもやる必要があるからかなり大変だね。

949login:Penguin:04/02/20 15:29 ID:bbNjHyQB
>>947
ライブラリの方に移してくれって作者に頼むなり
自分で改造するなりすれば?
950login:Penguin:04/02/20 20:25 ID:ZVKDdpmW
>>949
それがしたくない(できない)のではなかろうか・・・


951login:Penguin:04/02/20 20:46 ID:FH7YofMT
>>950
といってもそれしか方法が無いわけだが。
ダイナミックリンカもどき作っても、相手側のアドレスが変わったら対応できないし。

まあ、はくしてパッチを送るのが一番無難な対応だと思いまふ。

952login:Penguin:04/02/21 00:32 ID:5f4IU5Il
>>947
要するに、
「あるプログラムの関数を使用したい。
コピーはできるけど、オリジナル関数の方に変更があった時に
コピーした方も変更が入るからやりたくない。」
ってことでしょ

実行プログラムを逆汗して埋め込むってのは無し?
953login:Penguin:04/02/21 01:20 ID:a7qDi4js
>>952
あくまでも玄人ということを忘れちゃいけないですよ。
自分で生HDDをつけるということは、少なくてもパーティションの作成から
ファイルシステムやswapの作成というところから始めなきゃいけない訳だし
unix未経験者にはハードル高いんじゃないかな、少なくてもvi使えないと話にならんし。
でもこれから勉強したい人には良いかもね。
954login:Penguin:04/02/21 01:37 ID:aNwXDTkl
>>950
それは本人じゃないとわからないな。
955947:04/02/21 10:21 ID:g34pH8iI
おお、みなさんありがとうございます。
ちょっと仕事が入ってしまってリプライが遅くなってすみません。
単純に実行ファイルをリンクできるかなあ、と思ってしまった私が
馬鹿でした。

そもそも私が考えていたことは出来ないと理解しました。

>>949 さんがおっしゃる作者への依頼と改造は、>>950さんが
おっしゃるように現状出来ないのです、、
>>952さんの逆アセについてはちょっと私には知識が無いので
難しいです。

とりあえずあきらめました。
皆様ご助言ありがとうございました。
956login:Penguin:04/02/21 15:11 ID:dBRW80lN
>>947
諦めるのはやいなぁ(・A・)
ソースあるならソースをそのまま拝借して、仕様変更に耐えられるように
適当にラッパを作れば何とかなりそうじゃん。

そのソフトウェアが広く(または狭くても)認められれば、作者も
何か手を打ってくれるかもしれないよ。
「認められたもの勝ち」だよ。
957login:Penguin:04/02/25 16:56 ID:xKpEI/8U
expectのAPIってありますか?
例えばコマンドでexpectを使うように、Cのソースの中
で対話型プログラム(プロセス)を実行したいのです。
system()で呼び出したプロセスをなんとか制御できない
もんかと思いまして質問いたしました。
958login:Penguin:04/02/25 17:15 ID:Oh46YxgV
>>957
あれはTclで書いてあったような気がするので、
単純にCから呼べるようにはなっていないと思う。

pipeでがんばれ。
959login:Penguin:04/02/25 23:35 ID:UvNfIzer
いや、tclって簡単にCに組み込んで独自の言語を動かすための言語ですよ。
もともとハードウェア屋さんが何度となく繰り返される実験のために作った言語だから。
http://www.tcl.tk/man/tcl8.4/ の Tcl Libraryってとこ。
Tutorialもどこかにあった。
960958:04/02/26 00:12 ID://0HjKwJ
>>959
いやTclをつっこんでも、expectがそういう使いかたを考慮してないのでは?
と思ってソースとってきたら、libexpectなんてのがありますな。
これ使えば目的を果たせるのでは?>>957
961login:Penguin:04/02/26 00:36 ID:yDLuiwph
>>960
Tclの言語仕様を良く見て貰うと分かるけど、
expect程度の拡張だと、Tclの特徴消せないんだわ。

もちろんcontrolling terminal廻りの注意はする必要があるが。
962login:Penguin:04/02/27 01:22 ID:+++7ZFaP
SDLを使ってアプリを書いているんですけど、コンソール版とX11版だとコンソールの方が遅い。
コンソールの方を早くするにはどうしたらいい?
963login:Penguin:04/02/27 02:44 ID:fBM8xqSu
>>962
IDすげー
964login:Penguin:04/02/27 02:51 ID:sg8IAEvK
ほんとだ。
>>963 も fb と su か・・・
965login:Penguin:04/02/29 01:48 ID:a16y9WaW
モデムフックしそうだ
966login:Penguin:04/03/07 03:10 ID:DkALGUAM
閑散としすぎなのでage

そういう俺はC++で数学的な処理をするプログラムしか書いたことがないなぁ。
(一応高校生だもんで実用のになるような範囲しかやらなかったり…)
今度、何か面白いもの作ってみようかな?
967login:Penguin:04/03/07 12:40 ID:9agJ57bm
>>966
激しく期待age
968login:Penguin:04/03/07 13:04 ID:X6zyXe95
969login:Penguin:04/03/10 22:52 ID:LEB4/zIK
Linuxで何ができますか?
970login:Penguin:04/03/10 22:59 ID:RntBxOoz
プログラミング
971login:Penguin:04/03/10 23:08 ID:oRw559Y+
>>969

・フランス料理
・床暖房
・プロレス
972login:Penguin:04/03/10 23:56 ID:smCT96go
デバイスドライバの書き方をやさしく解説した本とかサイトとか
ありませんか?
カーネルソースのdrivers以下を読めってのは、なしで。
973login:Penguin:04/03/11 00:02 ID:SYphARap
>>972
LINUX デバイスドライバ O'REILLY

今となってはちと古いね。
第2版出てんのかなー。
(英語版はなぜか WEB で見れたんで wget した)
974login:Penguin:04/03/11 00:24 ID:5HCKPPmL
>>973
ありがとうございます。
にしても高い本ですね。
975login:Penguin:04/03/11 01:53 ID:9Nhtmxoa
>>974
読んどきゃなんとかなる本ではないから、詠む時は多少気合いを入れてあげてね。
976login:Penguin:04/03/11 10:21 ID:iMmDyNYj
>>974

974の言う通りオライリはちょっと気合が要ります。
その前にここら辺で肩ならししといてはいかがでしょう。
http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/indexframe.html

ちゃんとドライバ書きたいならオライリ持ってる方が良いけどね。

>>973
今はどの本屋にも第2版しか置いてないですよん。
977login:Penguin:04/03/11 14:16 ID:EpkHQQD1
>>976
ちゃんと馬本から入った方がいいよ
ていうか、あれはオライリーの中で 一番わかりやすい本 だと思うが。
978login:Penguin:04/03/11 14:45 ID:/yDh0VN8
一番て
979login:Penguin:04/03/14 02:22 ID:moAPMrB3
980login:Penguin:04/03/14 13:56 ID:IRycuJog
今日からLinux勉強しようと思います
←仕事で必要のため
皆さん
よろしくお願いします
981login:Penguin:04/03/14 14:08 ID:moAPMrB3
982login:Penguin:04/03/14 14:29 ID:tGUzSqbT
次スレは?
983login:Penguin:04/03/14 14:33 ID:uLDAtGA8
いらないでしょ。
984login:Penguin:04/03/14 15:11 ID:3VlCq2eB
いる!!!!!!!!!!!
985login:Penguin:04/03/14 15:14 ID:moAPMrB3
ム板行け。
986login:Penguin:04/03/14 16:02 ID:IRycuJog
Windouwsと共存しようと
HDD増設しったんですけど
987login:Penguin:04/03/14 16:04 ID:IRycuJog
OSローダーから起動できません
1stドライブがWindowsで50GB使ってるんですがこれがブートセクタの壁ですか?
988login:Penguin:04/03/14 16:07 ID:IRycuJog
ブートローダはLinuxパーティションの/boot
に入れてます。ちょくちょく弄りたいのでBootディスクは辛いのです
989login:Penguin:04/03/14 16:07 ID:moAPMrB3
>>986 >>987
くだらねえ質問はここに書き込め! Part72
http://pc.2ch.net/test/read.cgi/linux/1078822042/
990login:Penguin:04/03/14 16:10 ID:IRycuJog
良い方法ありませんヵ?
WINDOWS-5GB位にして直後の基本領域に入れるほかないんでしょうか?
でもWIN再インストールはしたくないんですよねぇ
991login:Penguin:04/03/14 16:17 ID:IRycuJog
いろいろ試したんですけど駄目なんすよね
あとLinux領域とVFATは互換性あるとか聞いたんですが認識しないみたいです
直接的な関係じゃないんでしょうか?
初心者ですみませんが
992login:Penguin:04/03/14 16:19 ID:IRycuJog
皆さんウィンドウズと共存されてる方ってみんなシステムで10GBとか使用してないんですかねぇ
993login:Penguin:04/03/14 16:20 ID:IRycuJog
Dual情報見てもなんだかみんな1024の壁クリアすことを苦としてない人が多いもので
情報不足ですかぁぁ
994login:Penguin:04/03/14 16:22 ID:moAPMrB3
日記ならこちらで。

【悪戦】ど素人から初心者への道 3 【苦闘】
http://pc.2ch.net/test/read.cgi/linux/1077400535/
995login:Penguin:04/03/14 16:22 ID:IRycuJog
まぁ別に組めれば言いに越したことないんですけど、現状では共存の道しかないのです
どうかお力をお貸しくださいい
996login:Penguin:04/03/14 16:24 ID:IRycuJog
頭脳がマヌケですみません。。。
997login:Penguin:04/03/14 16:26 ID:IRycuJog
えーと
998login:Penguin:04/03/14 16:34 ID:3JwYQZ6z
(´ι _`  )
999login:Penguin:04/03/14 16:35 ID:cSNQC/iP
999
1000login:Penguin:04/03/14 16:35 ID:3JwYQZ6z
(´ι _`  )・・・999
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。