トップページunix
1001コメント334KB

くだらない質問はここに書き込め!なんでもアリ23

■ このスレッドは過去ログ倉庫に格納されています
0001UNIX@2ch掲示板NGNG
========NGワード========
■UNIXって何?(http://pc.2ch.net/test/read.cgi/unix/998779290/)
■UNIXとLinuxの違いは?(http://pc.2ch.net/test/read.cgi/unix/1024558135/)
■2ch閉鎖の危機をUNIX板が救ったという話{は本当?| を知った。有り難う! |のflashはどこ?}
========================

クソスレを立ててしまい、罵倒されたり、xやdされてしまった皆さん、こんにちは。ここは、Chalicer、navi2cher、goRuarといった面々の反感を緩和し、板の平穏を守り技を後世に伝える、皆さんお馴染み大好評、「質問総合受付窓口」です。
UNIXにまつわることなら政治・経済・宗教・技術・国際・生活・就職・健康・娯楽・性の悩みな質問何でもあり。
不適切な問いであっても徹底的にハードな叩きで然るべき所に導いていただけることもアルと思います。安心して罵倒されちゃい

なさい。
大満足な答えが返ればハァハァできる画像の在処に根こそぎwgetの書式でもって導くとよいカモしれませぬ。

但し、書き込む前に質問に適切な専門の板・スレッドがないかは確認してください。
■Linuxは専門板があります。 http://pc.2ch.net/linux/

>>2 過去ログなど

それでは、Go!
0588名無しさん@お腹いっぱい。NGNG
錯綜してるな。
問題解決に関係ない煽りは控えてくれ。
0589名無しさん@お腹いっぱい。NGNG
>>583
4.8.3 を含む以前のリゾルバは途中に "." を含み、最後に "." のない
名前を引くとき最初に domain [ほにゃらら] の [ほにゃらら] を付けて検索し
マッチしなければ、[ほにゃらら] なし、つまり入力したままを検索します。

4.9 以降は先に付けないで検索するようになてます。
0590570NGNG
>>589
なるほど、それでhost.name.aa.jp.name.aa.jpを調べに行っていて、
途中遅いところが有って遅かったんですね?勉強になります。
0591名無しさん@お腹いっぱい。NGNG
>>590
とりあえず余計な検索をしなくなったわけで「よかったね!」ですが
host.name.aa.jp.name.aa.jp の検索に時間がかかるのはおかしい気がするなぁ。

name.aa.jp のネームサーバが一瞬で「そんな名前はみつからないYO!」と
返すはずだと思うんだが…
0592名無しさん@お腹いっぱい。NGNG
下記のことができる(またはその設定方法)MTAを探しています。
なんかないでしょか?Sendmailでできるとベストなんですが。

SMTPにて受け取ったメールを、自分自身にローカル配信しつつ、
Staticに別なサーバへ転送させたい。
.forwardでは一度スプールに落ちてしまうのでちと困る。
イメージとしては(Sendmailですが)、mailettableで別サーバを指定しつつ、
自分自身にも配信したい。
ユーザは両サーバとも同じ登録がされているものとします。

なんかいい方法ないでしょか?
0593名無しさん@お腹いっぱい。NGNG
>>592
> .forwardでは一度スプールに落ちてしまうのでちと困る。

これがよくわからん。
sendmail は /etc/mail/aliases や ~/.forward はローカル配信する前に評価する。
たとえば、.forward に転送先メールアドレスしか書いてなければ、
スプール (/var/mail とか) には落ちずに sendmail が直接転送する。
0594名無しさん@お腹いっぱい。NGNG
http://www.kk.iij4u.or.jp/~ando/
ものすごく速いらしいんですけど、どうなんでしょうか?
誰か使っていませんか?
0595名無しさん@お腹いっぱい。NGNG
>>592
mailettableて何?
普通のforwardingとの違いが全然わからん。
0596名無しさん@お腹いっぱい。NGNG
>>595
mailertable の typo でしょ。
0597名無しさん@お腹いっぱい。NGNG
ディレクトリにある頭が0で埋められてない数字名のファイル群
(1,2,3,4,等)の頭に0をつけていこうとして以下のスクリプトを
書いたが

#!/bin/sh

ls -1 | while read line
do
case ${line} in
[0-9])
mv ${line} 000${line}
;;
[10-99])
mv ${line} 00${line}
;;
[100-999])
mv ${line} 0${line}
;;
*)
echo "no match"
;;
esac
done

exit 0

case文の[0-9]にはマッチしているようなんだが、
[10-99]に11とか12がマッチすてくれない。
同様に[100-999]にも111とかマッチしない。なんで???
0598名無しさん@お腹いっぱい。NGNG
[10-99]は[1-9][0-9]
[100-999]は[1-9][0-9][0-9]
0599名無しさん@お腹いっぱい。NGNG
>>598
ぬお!?、さんくす。
そうか、そう書くのか、、、正直勉強になた
0600名無しさん@お腹いっぱい。NGNG
今なら登録するだけでおこづかい1000円(σ・∀・)σ<ゲッツ!
早速振り込まれたよ。まりこのオススメ♪
http://accessplus.jp/staff/in.cgi?id=11141
0601bloomNGNG
http://homepage.mac.com/ayaya16/
0602_NGNG
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0603名無しさん@お腹いっぱい。NGNG
echo [0-9] [1-9][0-9] [1-9][0-9][0-9] | while read line
do
mv ${line} `expr 000${line} : '.*\(....\)'`
done
0604動画直リンNGNG
http://homepage.mac.com/hitomi18/
0605名無しさん@お腹いっぱい。NGNG
わざわざ echo, while, read 組み合わせんでも…

for i in [0-9] [1-9][0-9] [1-9][0-9][0-9]
(略)
0606もろうさぎNGNG
ここ?
http://www.dvd01.hamstar.jp/
0607名無しさん@お腹いっぱい。NGNG
mv $i `printf '%03d' $i`
0608_NGNG
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0609名無しさん@お腹いっぱい。NGNG
>>593

すんません、あせって変なこと書いてしまいました。
現在、残しつつ転送するとしていて、それをやるために .forwardに
\自分,転送先 としていたもので。設定上の話でした。

.forward を使用せずにこのようなことを行いたいのです。
mailertableでとばしたいのです。
0610名無しさん@お腹いっぱい。NGNG
>>609
なぜ .forward がダメなのかが書いてないのでよくわからんが (気分の問題?)
aliases とかではダメなの? .forward と全く同じことができるわけだが。
0611名無しさん@お腹いっぱい。NGNG
LinuxとFreeBSDって、何がどう違うの?
0612名無しさん@お腹いっぱい。NGNG
>>611
■*BSDとLinuxって何が違うの?■
http://pc.2ch.net/test/read.cgi/linux/1014317463/
0613名無しさん@お腹いっぱい。NGNG
>>612
  ∩∩  
 (゚ロ゚ ,,)__  <ありがちょ
  し‐J‐J
0614名無しさん@お腹いっぱい。NGNG
下痢気味でトイレに行ったらパンシにンコが付いてました どうしたらよいでしょうか?
0615名無しさん@お腹いっぱい。NGNG
>>614 セキュリティホールはしっかりと塞いでおきましょう。
0616名無しさん@お腹いっぱい。NGNG
漏れの昼飯はカレーなのだがな
0617名無しさん@お腹いっぱい。NGNG
俺は牛鈍だったが、なに?
0618名無しさん@お腹いっぱい。NGNG
漏れのもカレーだったが何か?
0619名無しさん@お腹いっぱい。NGNG
>>595
mail + ett(e) + able
形容詞 :かわいらしいメイルを送信できる
0620名無しさん@お腹いっぱい。NGNG
>>609
aliases, .forward 使わずに複数箇所へ転送するのは難しいと思われ。
少なくとも、cf の設定をちょこっといじるくらいではできん。

で、「.forward を使用せずに」ってのの理由を知りたいところ。
0621名無しさん@お腹いっぱい。NGNG
教えてください。
マカに「厨」の字が冠されない理由は何?
0622名無しさん@お腹いっぱい。NGNG
>>621
それすらおこがましいから。
0623名無しさん@お腹いっぱい。NGNG
格上げしてください。
0624592NGNG
>>610
>>620

レスサンクス。
なんで.forwardやaliasじゃだめかというと、ちょっと特殊な状態で
メールを残し、転送する先のメールアドレスのドメインパートが
両方とも同じなんです。
だから、mailertableのようにstaticにIPで転送先を指定したいんです。
account@[IPアドレス]という指定はしたくない(相手によってはダメなので)

こんな感じなんですがなんか良い案ないでしょか?
0625427NGNG
>>438

サンクス。できた。
set height する前に show height して値を確認しておけば、
元に戻せるね。
0626名無しさん@お腹いっぱい。NGNG
>>624
aliases で 2 つの仮のアドレスに振り分けて、その仮のアドレスに対して
mailertable を記述するのはどうだろう?

やったことないからできるのかどうかわからんけど。
0627592NGNG
>>626

なるほど、メールアドレスのドメインパートをちゃんと考えてやらないと
危ない部分もありそうですが、できそうな感じですね。

時間ができたら試してみます。ありがとう。
結果はまた報告します。
0628名無しさん@お腹いっぱい。NGNG
cygwinで無限ループプログラムの出力をリダイレクトさせた
時にリアルタイムに反映させる方法はないでしょうか?
たとえば
#!/bin/perl
print "start your hoge\n";
while (1){print "hogehoge\n";sleep 10;
#`echo`;
}

こういうのを 'hoge |tee hogelog'
とするとなにも表示されなくなってしまします。
ctl+cで止めてもログになにも残ってません。
'hoge >hogelog'でもログになにものこりません。
(づーっと待っていれば遅れて表示されるので
バッファかなにかにたまってると判断しています。)

最後のコメントみたいに` `でコマンドを発行すると
吐き出されるのは発見したのですがちょっとカッコ
わるいので・・・

やりたいのはsnmpでルーターのステイタスをgetする
perlスクリプトを使ってインターフェース情報のログを
とるというものです。
0629ななしNGNG
http://news2.2ch.net/test/read.cgi/newsplus/1053183364/l50
かえ
0630名無しさん@お腹いっぱい。NGNG
>>628
flushて聞いたことありますか?
rawIOて聞いたことありますか?
0631名無しさん@お腹いっぱい。NGNG
>>268
$|=1;
じゃだめ?

ファイル open して書き込んで close じゃ
不都合がある?
0632名無しさん@お腹いっぱい。NGNG
>>630
>>631
ありがとうございます、先頭に$|=1を入れて解決しました。
flushと$|=1;のキーワードで、昔cgiの本を読んだ時の事を
思い出しました。

私はネットワークエンジニアで、UNIX系の勉強を兼ねて
実務で使うツールを幾つか作っているところです。
柔軟に処理できるようにしたかったのでリダイレクトに
こだわっていました。
0633名無しさん@お腹いっぱい。NGNG
ld(1)では、-rpath-linkオプションに関して
When using ELF or SunOS, one shared library may require
another. This happens when an ld -shared link includes
a shared library as one of the input files.

When the linker encounters such a dependency when doing
a non-shared, non-relocateable link, it will automati-
cally try to locate the required shared library and in-
clude it in the link, if it is not included explicitly.
と書かれていますが、意味が分かりません。(続く)
0634633NGNG
第2段落(When the linker…)の "such a dependency" は第1段落で述べられている
ことを指しており、「1つの共有ライブラリ(Aとする)が別の共有ライブラ
リ(Bとする)を必要とするような依存関係」を意味することは分かります。

で、その第2段落の "when doing a non-shared, non-relocateable link" がよく分からな
いのです。shared libraryの依存関係なのに "non-shared" ?

> When the linker encounters such a dependency when doing a non-shared, non-relocateable link,
これは例えば具体的にどういったことを実行したときに発生するのでしょう
か?私は以下の内容のファイル hoge.c
#include <math.h>
#include <stdio.h>

main()
{
printf("sqrt(256)=%lf\n",sqrt(256));
return 0;
}

を作成し、
   % gcc -static -o hoge_s hoge.c /usr/lib/libm.so
を実行したのですが、
   % file hoge_s
では「dynamic linked」と表示されます…

とりあえず、
  [FreeBSD-users-jp 60135]
  RTLD(1): ld-elf.so.1, rtld - run-time link-editor
は参考にさせていただきました。
0635633NGNG
というわけで、よろしくお願いします
0636633NGNG
-rpathで指定されたパスは実行形式ファイルに埋め込まれるのは分かりますが、
-rpath-linkで指定されたパスは埋め込まれないんですよね?

そもそも共有オブジェクト(上記のAとか)の実行内容そのものは実行形式フ
ァイルに存在せず、その共有オブジェクトをmmap(2)を使用して読み込むという
処理だけが存在するわけだが、「リンク時のみに効果がある(is only effective
at link time)」の意味が分からない。。。。。

あと、The linker uses the following search paths … は「コンパイルの際の」リンク
時での話ですよね?(ここでの "The linker" は "The runtime linker" ではないです
よね?)
0637名無しさん@お腹いっぱい。NGNG
あまり詳しくないから識者を待つとして、
下は、libm.soはlibm.aじゃないの?とか、
linkするのはlibcとかもあるわけでlddしてみないと
libmがstaticlinkされてるかわからんような気がするとか思うわけだが。
>    % gcc -static -o hoge_s hoge.c /usr/lib/libm.so
> を実行したのですが、
>    % file hoge_s
> では「dynamic linked」と表示されます…
0638名無しさん@お腹いっぱい。NGNG
Solarisのリンカ(/usr/ccs/bin/ld)だと

1: gcc -static -o hoge1_s hoge.c -lm
2: gcc -Wl,-dn -o hoge2_s hoge.c -lm
3: gcc -Wl,-Bstatic -o hoge3_s hoge.c -lm

とした場合、1,2はバイト数も全く同じな"静的"な実行ファイルができるけど

3番目は
ldd では動的ライブラリは出てこないが
file すると"動的にリンクされています"と表示され
readelf -d hoge3_s するとずらずら表示される
なんだかへんな実行ファイルができるようだ。



Linuxのリンカだと1,2,3ともに
lddでもfileでも"静的にリンクされている"と表示される。

が、こちらはバイト数をしらべると
2,3が全く同じで
1が他より少しだけファイルサイズが大きい。

nmで調べると、1だけシンボルが3つくらい多い。



識者解説熱烈希望。
0639633NGNG
返答どうもです。

>>637
> 下は、libm.soはlibm.aじゃないの?
これは  意 図 的 に (w  libm.soと書きました。……でも、「第2段落
の "when doing a non-shared, non-relocateable link" 」とは関係ないか。。。

> linkするのはlibcとかもあるわけで
その辺は大丈夫です。このような場合、「% ldd hoge_s」を実行すると、libm.so
が動的リンクされる(実行時に読み込まれる)と表示されますが、libc関係は
表示されません。libc関係は静的リンクされているということなんでしょう。
   % ldd hoge_s
   hoge_s:
    libm.so.2 => /usr/lib/libm.so.2 (0x28066000)
   %
0640633NGNG
私の使用環境は FreeBSD 4.8-RELEASE で、コンパイラ・リンカは元からあるもの
をそのまま使ってます。このOSではコンパイラはgcc 2.95.4(相当)とのことで、
リンカは GNU ld 2.12.1(相当) のようです(ともに--versionで確認)。

>>638
その3パターンはすべて同じ意味で、「静的リンクする」ということですよ
ね。私の環境ではすべて「statically linked」(fileコマンド)、
「not a dynamic executable」(lddコマンド)と表示されました。中身もすべて同
じでした。


とりあえず、私の頭の中を整理すると、
  ・-rpath-linkの意味が分からない
  ・分からないのはld(1)の記述の中の、>>634で書いた部分。
  ・すなわち、「共有ライブラリが別の共有ライブラリを必要としている状
   態で、非共有、再配置不可能なリンクを行う」ってどういうこと??
  ・(コマンドライン上での)どういった操作でそういうことが再現できる
   のかを教えてもらえればそこから類推できるかも?
ということです

おまけ:
 ・リンカは「-rpath」の代わりに「--rpath」を使ってもよい。"rpath"の前に
  '-'(ハイフン)を2つ付けても同じ意味になる。マニュアルには書いてない
  けど。結構有名なの?
 ・-rpathを複数回指定する代わりに、それらのパスを:でつなげれば-rpathは
  1回指定するだけでよい。すなわち、「-rpath /path/a -rpath /lib/x」は
  「-rpath /path/a:/lib/x」と同じ意味になる、ということ。-rpathで指定した
  パスは実行形式に埋め込まれるから、それをその実行形式ファイルから
  探してみた(% strings /some/executable | grep /lib/x)ときに分かった。
 ・でも「-rpath "/path/a /lib/x"」のようにスペース(0x20)で区切ってはダメ
0641633NGNG
ELF形式の仕様書
http://x86.ddj.com/ftp/manuals/tools/elf.pdf

# [FreeBSD-users-jp 60135]から辿れるURLにはないようですんでメモ
0642続くNGNG
>>640
とりあえず違いだけ。
%cat testm.c
#include <math.h>
double pow(double x, double y)
{
return -1;
}

%cat test1.c
#include <math.h>
double p(double x)
{
return pow(x, x);
}

%cat test.c
#include <stdio.h>
double p(double);
int main(int ac, char **av)
{
printf("%f\n", p(0));
return 0;
}

% cc -c testm.c
% cc -o /tmp/libm2.so -shared testm.o
% cc -o test1.so -shared test1.c -L/tmp -lm2
ここまで準備
0643その2NGNG
-rpath-linkなしは警告でる。
% cc test.c test1.so
/usr/bin/ld: warning: libm2.so, needed by test1.so, not found (try using -rpath or -rpath-link)
test1.so: undefined reference to `pow'

-rpath-linkありは警告出ない。
% cc -Wl,-rpath-link,/tmp test.c test1.so

どのように使うと便利なのかは不明。>>634の疑問は解決すると思う。
0644名無しさん@お腹いっぱい。NGNG
http://www.FreeBSD.org/cgi/man.cgi?query=ld&apropos=0&sektion=0&manpath=FreeBSD+4.8-RELEASE&format=html
によると

-rpath-linkと-rpathの違いは

The difference
between -rpath and -rpath-link is that directories specified by
-rpath options are included in the executable and used at run-
time, whereas the -rpath-link option is only effective at link
time. It is for the native linker only.

と説明されてる。
生成される実行ファイルに検索パスが埋め込まれるかどうかの差では。
0645名無しさん@お腹いっぱい。NGNG
たとえば"/home/oresama/build/lib"とかにある"liboresama.so"を
リンクしてなにかをコンパイルしたとして、

-rpathだと
実行ファイルに検索パスがばっちり書き込まれて、
自分が個人的に使う場合、ld.so.confとか環境変数で検索パスを追加しないでも
/home/oresama/libにあるliboresama.soがロードできて便利な反面、
他のシステムにその実行ファイルを持っていくといろいろと不都合が
起きたりする。

-rpath-linkだと
実行時にコンパイル時の検索パス(/home/oresama/build/lib)が検索されないので
なんらかの方法で"liboresama.so"がロードされるようにしないといけない。
しかし、もし他のシステムの標準の検索パス("/usr/lib"とか)に
liboresama.soを持ち込んでしまえるなら、
そのliboresama.soがとても怪しい以外は特に不都合は起きない。

liboresama.soがとても怪しいとしても/libとか/usr/libに
あると、目立つのでチェックしやすい。
/dev/.../.himitsu とかにあるとちょっと探しにくい。

のような感じではないでしょうか。
0646645NGNG
しかし
[じゃあ単純に"-L/dir"するのとどう違うんだ?]
という気がしてきたので
たぶん上の説明は嘘です。

そろそろ逃げます。
識者フォロー期待。
0647633NGNG
>>642-643
ありがとうございます。この例を少し改変して(そんなに変わらないんです
けど(笑))、以下のようにしました:

1.testm.c, test1.c, test.cを作成
----- testm.c
#include <math.h>

double pow ( double x, double y )
{
return (x*y) ; /* 「x,yが一度も使われていない」という警告を避ける */
}
----- test1.c
#include <math.h>

double p ( double x )
{
return pow(x,x) ;
}
----- test.c
#include <stdio.h>

double p(double);

int main ( void )
{
printf ( "%f\n", p(2) ) ;
return 0 ;
}
0648633NGNG
2.準備
% cc -c testm.c
% cc -o /tmp/hogeso/m/libm2.so -shared testm.o
% cc -o /tmp/hogeso/t/libtest1.so -shared test1.c -L/tmp/hogeso/m -lm2


これにより、/tmp/hogeso以下は
  m/libm2.so
  t/libtest1.so
のようになる。
0649633NGNG
3.実行ファイルの作成
  (1) exe1
     % cc -o exe1 test.c /tmp/hogeso/t/libtest1.so
   >>643氏のように警告が出る上、exe1なる実行ファイルは作られない。
  (2) exe2
     % cc -o exe2 -Wl,-rpath-link,/tmp/hogeso/m test.c /tmp/hogeso/t/libtest1.so
  (3) exe3
     % cc -o exe3 -Wl,-rpath-link,/tmp/hogeso/m test.c -L/tmp/hogeso/t -ltest1
0650633NGNG
4.作成されたファイル

作業ディレクトリ:
 test.c
 test1.c
 testm.c
 testm.o
 exe2
 exe3
/tmp/hogeso:
 m/libm2.so
 t/libtest1.so
0651642NGNG
どういう場合に使うか考えてみた。

標準的にはインストールされていないDSO(DSO1)をリンクしているDSO(DSO2)
とDSO1にリンクしている実行ファイル(PROG)を作る。
PROGとDSO2は一緒に配布するが、DSO1は別パッケージなので配布しない。かつDSO1のPATHをPROGに埋め込みたくない。
こういう時に使うのかも。
0652633NGNG
結局、以下のようになる:

(1)「ビルドの際の」リンクの段階では:
   -rpath-linkで指定されたパスから必要な共有オブジェクト(>>634で言う
   ところのAとB(両方だよ![*1]))を検索して、使用する関数など(自分で
   持ってるものとAに含まれているもの)のアドレスを決定し、「実行時
   に共有オブジェクトAをリンクする」という処理を埋め込む。Aで定義さ
   れている内容そのものは埋め込まれない。また、共有オブジェクトAやBの
   検索パスは埋め込まれない。
    [*1] Bが見つからないとexe1のときのように(→>>643,>>649)警告が表示
      され、実行ファイルが作成されない。

(2)「実行時の」リンクの段階では:
   プログラム本体の実行に先立ち、/usr/libexec/ld-elf.so.1が共有ライブラリ
   のリンクを行う。詳細は
     [FreeBSD-users-jp 60135]
     http://home.jp.FreeBSD.org/cgi-bin/showmail/FreeBSD-users-jp/60135
     
     RTLD(1): ld-elf.so.1, rtld - run-time link-editor
     (URLは省略…ただしマニュアルの日本語訳は存在する)
   を参照ってことで。
0653633NGNG
>>652に追加。
>>641
  ELF形式の仕様書
  http://x86.ddj.com/ftp/manuals/tools/elf.pdf
も参照、だな。あと、RTLD(1)の日本語マニュアルは、5.0-RELEASEのものなら
  ttp://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=rtld&dir=jpman-5.0.0%2Fman§=1
で参照可能。
0654645(まだいた)NGNG
てゆーか、単純にこういう↓ことでいいんじゃないのかなーーーー??

$ pwd
/export/home/oresama
$ mkdir fofofo
$ gcc -G fofofo.c -o fofofo/libfofofo.so -ll

$ file fofofo/libfofofo.so
fofofo/libfofofo.so:
ELF 32-ビット LSB 動的ライブラリ 80386 バージョン 1
[動的にリンクされています][取り除かれていません]

$ gcc -o hoge1 hoge.c -R`pwd`/fofofo -L`pwd`/fofofo -lfofofo -lm
$ ldd ./hoge1
libfofofo.so => /export/home/oresama/fofofo/libfofofo.so
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libl.so.1 => /usr/lib/libl.so.1
libdl.so.1 => /usr/lib/libdl.so.1

$ gcc -o hoge2 hoge.c -L`pwd`/fofofo -lfofofo -lm
$ ldd ./hoge2
libfofofo.so => (ファイルが見つかりません)
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
0655633NGNG
また、-rpathと-rpath-linkの違いは、>>644-645で(私以外の)[名無しさん@お腹いっぱい。]
さんが書かれている通りです。実際、>>649で作成されたexe2,exe3に対してそれ
ぞれ
   % strings exe2
   % strings exe3
しても-rpath-linkで指定されたパスは現れない。(-rpathで指定されたパスは
コロン(:)で区切られた状態で現れる)

注意点としては、マニュアルにもある通り、-rpath-linkはセキュリティホール
の原因になりうるということだ。>>649で作成されたexe2の場合、/tmp/hogeso/m/libm2.so
で定義されているのと同じ名前の関数(この例ではpow()関数)を持つlibm2.soが
他のところに存在すれば、それを実行時にリンクしてその関数を実行してしま
う可能性がある。その「他のところに存在する」libm2.soが悪さをするもので
あれば、セキュリティホールにつながる、というわけだ。


>>646
>>649書く前に見たんで、検証用にexe3を作成する部分を追加してみますた。exe2
ではlibtest1.soのパス /tmp/hogeso/t/ が埋め込まれていますが、exe3では埋め込ま
れていないです(stringsで確認可能)。
0656633NGNG
>>654
-R /some/dir は -rpath /some/dir と同等ですね。
>>651
ちょっとまだ意味が分からないので(苦笑)、調べてみます。

ありがとうございました!!!
0657633(こっちもまだいたwNGNG
というか、実行ファイルを逆アセンブルすることってできないのでしょうかね?
それぞれの*.cは-Sでアセンブラのソースを吐かせることは知っているんですが…
   % gcc -S hoge.c
    →アセンブラのソースhoge.sが作成される
0658名無しさん@お腹いっぱい。NGNG
もうちょっと簡潔にドウゾ
0659bloomNGNG
http://homepage.mac.com/ayaya16/
0660名無しさん@EmacsNGNG
>>657
man objdump
0661名無しさん@お腹いっぱい。NGNG
>>660
酸糞

objdump(1)
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=objdump&dir=jpman-5.0.0%2Fman§=1
0662642NGNG
-rpathには二つの機能が同居していて、そのうちの一つ
The -rpath option is also used when locating shared objects which are needed by
shared objects explicitly included in the link.
だけ使いたい(ライブラリPATH)を埋め込まない。が-rpath-linkって事でFA?
0663名無しさん@お腹いっぱい。NGNG
設定ファイルの名前につく rc って何の略ですか?
0664名無しさん@お腹いっぱい。NGNG
run command
0665名無しさん@お腹いっぱい。NGNG
>>664 あくまで諸説あるうちのひとつだけどな
0666名無しさん@お腹いっぱい。NGNG
resource command
というのも考えられるかな。

あと、Release Candidateとか(違
0667名無しさん@お腹いっぱい。NGNG
>>663
runcom 説。
http://catb.org/~esr/jargon/html/R/rc-file.html
0668名無しさん@お腹いっぱい。NGNG
MacOSX10.2.6で、AppleのX11を入れて、
http://khdd.net/kanou/fonts/pfaedit.html
pfaeditというものを使おうとしているのですが、
日本語フォントがでかいので小さく表示させたいのと、
ファイルオープンダイアログで日本語ファイル名が文字化けするのをどうにかしたいんですが、
なにしろUNIXなものを始めて数日の厨なもので
どうしていいのか分かりません。どうしたら上手く行くんでしょうか。
0669名無しさん@お腹いっぱい。NGNG
Rc isn't Code の略という説はない
0670名無しさん@お腹いっぱい。NGNG
>>668
そんな状態では何かアドバイスをもらっても理解できないと思われ

せめて一カ月ぐらいあれこれいじってみるとか関連文書に目を通して
みるとか自分なりに解決するための努力をしてみてからまたどうぞ
0671名無しさん@お腹いっぱい。NGNG
>>670
せめてgoogle出来るキーワードが欲しいんです。
パソコン初心者というわけではないし、プログラミングとかもちょっとだけなら出来る
レベルであるので、キーとなる言葉が出れば探す手がかりになるのですが。
0672名無しさん@お腹いっぱい。NGNG
>>668
Mac OS XでUNIXを勉強しようと思います
http://pc.2ch.net/test/read.cgi/unix/998762559/
go!
0673名無しさん@お腹いっぱい。NGNG
>>672
あくまでXのリソース云々とかXサーバの解像度とか、そのへんのほぼ
X Window Systemの環境の中で閉じたハナシのようだが。

まあ「図書館に逝ってX関係の本の一冊でも読んでこい」ってとこか。
0674紺野あさみNGNG
  ∋8ノノハ.∩   http://www.togoshi.ginza.st/konno/
   川o・-・)ノ <先生!これらのお知らせがありました!
http://togoshi.ginza.st/konno/konno02.html
http://www.togoshi.ginza.st/konno/konno09.html
http://togoshi.ginza.st/konno/konno01.html
http://www.togoshi.ginza.st/konno/konno10.html
http://togoshi.ginza.st/konno/konno04.html
http://www.togoshi.ginza.st/konno/konno08.html
http://togoshi.ginza.st/konno/konno06.html
http://www.togoshi.ginza.st/konno/konno07.html
http://togoshi.ginza.st/konno/konno05.html
http://www.togoshi.ginza.st/konno/konno03.html
0675名無しさん@お腹いっぱい。NGNG
雑談スレでレスつきますかね?
0676名無しさん@お腹いっぱい。NGNG
やっぱ本買うしかないですか?お勧めの本ありますか?
0677名無しさん@お腹いっぱい。NGNG
>>676
とりあえずこのへんから。
www.gihyo.co.jp/books/syoseki.php/4-7741-1682-3
www.gihyo.co.jp/books/syoseki.php/4-7741-1683-1
0678名無しさん@お腹いっぱい。NGNG
1000ページレベルの本読まなきゃ使えないってことですか・・・素直にあきらめます。
0679名無しさん@お腹いっぱい。NGNG
>>678
その本値段の割に内容いいぞ
買って絶対損はしないと思うよ

X以外全般について載ってるし
0680名無しさん@お腹いっぱい。NGNG
1冊にぜーんぶ載ってます?
0681名無しさん@お腹いっぱい。NGNG
「ぜーんぶ」が何を指すのかわかんないけど、基本が分かり易く幅広く載ってる
あと、1冊じゃなくて上下巻2冊ね
0682名無しさん@お腹いっぱい。NGNG
ぜーんぶっていうのは、まあたとえばプログラミングを勉強するときって
初心者本を買った後、上級者本を買い、辞書っぽい本も買い・・・って
継ぎ足すように本を買ったりするじゃないですか。
そういうことが、全然ないまで言わずとも、あまり必要ない本ですかということです。
そういう本なら、そのページ数も理解できるし。
0683名無しさん@お腹いっぱい。NGNG
うぜー。立ち読みでも何でもすれば解るよ。
0684bloomNGNG
http://homepage.mac.com/ayaya16/
0685名無しさん@お腹いっぱい。NGNG
スレのタイトル信じて書いてるのに・・・
0686かおりん祭りNGNG
〜oノハヽo〜  http://togoshi.ginza.st/kaorin/
  ( ^▽^) < こンなのかございまーす♪ 
http://togoshi.ginza.st/kaorin/kaorin05.html
http://www.togoshi.ginza.st/kaorin/kaorin02.html
http://togoshi.ginza.st/kaorin/kaorin06.html
http://www.togoshi.ginza.st/kaorin/kaorin08.html
http://togoshi.ginza.st/kaorin/kaorin01.html
http://www.togoshi.ginza.st/kaorin/kaorin10.html
http://togoshi.ginza.st/kaorin/kaorin04.html
http://www.togoshi.ginza.st/kaorin/kaorin03.html
http://togoshi.ginza.st/kaorin/kaorin09.html
http://www.togoshi.ginza.st/kaorin/kaorin07.html
0687名無しさん@お腹いっぱい。NGNG
>>685
いちいち回答が得られているじゃん。すごい親切なスレだと思うよ。
■ このスレッドは過去ログ倉庫に格納されています