[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 11/15 23:12 / Filesize : 90 KB / Number-of Response : 341
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Solarisプログラミング教えてチョンマゲ



1 名前:帰宅部高校1年 [02/01/20 01:56.net]
一ヶ月前、父親に「パソコン買って」とねだったら[Ultra10]と書かれたマシンをくれました。
わくわくして起動してみるとなんか友達の持ってるヤツと全然違う・・・
っていうかキーボードとマウスもよく見るとなんかおかしい。

親にネットにつないでもらって調べてみるとUltra10というのは
サン・マイクロシステムズというメーカーが出しているワークステーションで
Solarisというシステム(UNIX?)が動いているようです。
父親にこのワークステーションで何ができるのか聞いてみると、
「ホ→ムペ→ジもメールも見られるぞ」「派手なゲームはできない」
「どうせ暇なんだからプログラムでも勉強してみろ」
とつれない答えが・・・

まあ冬休みで暇だからプログラミングを勉強でもしてみるか、と
ネットで勉強しながらifとかwhileとか構造体とかポインタとか覚えました。
しかしこれを使って具体的に何ができるのか・・・?
ネットで見られる情報には↑とかの基本的な使い方しか書かれて無い模様。
ここからステップアップしたいのですがどうすればいいんでしょうか?

友達にも知ってる人はいないし、
本屋で立ち読みしてもネットで得られるものと同じような基本的な部分にしか触れていません。

2ch閉鎖騒動の動画をみてUNIX板の存在を知り
ここならすごいプログラマーの人がいると思い質問させていただきました。

お願いします。

67 名前:名無しさん@お腹いっぱい。 [02/03/03 20:36.net]
期末テスト?


68 名前:名無しさん@お腹いっぱい。 [02/03/03 20:42.net]
>>64
/bin=/usr/bin
/sbin≠/usr/sbin
これ、Solarisの常識。

69 名前:名無しさん@お腹いっぱい。 mailto:Suck@it !! [02/03/03 20:55.net]
うっ・・羨ましい......

わたくしめでしたら金さえあればintelなマシンは買わんが.....

また、貴方のお父様も通好みな物をお持ちで....




70 名前:帰宅部高校1年 [02/03/10 13:31.net]
ちょっと詰まっているので、知ってる方がいたら教えてください。
レベルの低い質問だとは思いますが・・・

コマンドラインからの引数を受け取りたい場合、
int main(int argc, char **argv) と書きますよね、

argvは引数の先頭のアドレスだからargv++とかで、次の要素へズラすことができる、
*argvはその中身で、while(argc--){printf("%s",*argv);argv++;}で表示することができる。

では**argvと言うのは何を表しているんでしょうか?
いろんなソースを眺めているとコマンドラインから受け取るオプションのチェックなどに使われているように思われるのですが・・・

71 名前:SunOS5.8-i38pc mailto:sage [02/03/10 14:42.net]
**argv は *argv[ xx ] と思っていいよ
そしたらわかるかい?

72 名前:42 [02/03/10 14:57.net]
>>70
71さんに勝手に補足(やりすぎたらごめんよ。自分で答えみつける方が楽しい
からね)
- 文字列はcharの配列である。書くときは
 char *hogeともchar hoge[]とも書ける。これの意味は同じ
- じゃあ文字列を要素とする配列はどうかく?

73 名前:通りすがり mailto:sage [02/03/10 16:05.net]
>72に勝手に補足。

char **argvの意味するところが判ったら、次は
(コードとして難易度は比較的高い部類なんだけれど)
コマンドライン引数を解析する為の関数である

getopt(3)あるいはgetopt_long(3)

がunistd.hあるいはgetopt.h(Solarisはどっちだろ...)
にあるので、それの使い方および内部構造を読んでみると
更に理解が進むと思う。

cvsweb.netbsd.org/bsdweb.cgi/basesrc/lib/libc/stdlib/getopt.c?rev=1.21&content-type=text/x-cvsweb-markup
cvsweb.netbsd.org/bsdweb.cgi/basesrc/lib/libc/stdlib/getopt_long.c?rev=1.15&content-type=text/x-cvsweb-markup

# GPL版のgetopt_longは正直ごちゃごちゃしてるのでお勧めしない

74 名前:帰宅部高校1年 [02/03/10 18:06.net]
>>71-72
なるほど。たとえば、
int main(int argc, char *argv[]){
 argv++; //./a.outを読み飛ばして
 argc--; //一つ減らす
}

をコンパイルして、

./a.out test1 test2

として実行したとき、
*argv は test1
**argv は t
を表すって事ですよね?

つまり「char型の配列を要素とする、配列」と言うことで間違って無いですよね?

>>73
アドバイスありがとうございます。
早速、挑戦してみます。

75 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 18:11.net]
ポインタ演算は最初はわかりにくいね。



76 名前:名無しさん@コート脱いだらハワイのミポリソ萌え mailto:名無しさん@コート脱いだらハワイのミポリソ萌え [02/03/10 18:13.net]
>>1よ。お前みたいな奴をみると、あの日のことを思い出すよ。
>2001年8月25日。2ちゃんが本格的に閉鎖になりかけた日だよ。
>転送量が多すぎて、費用が月700万もかかってるって発表されて、「数日中に閉鎖」って予告されてさ、
>その日のうちにあっちこっちの板が封鎖されてた日だよ。
>あのときのUNIX板の住人、カッコよかったんだぜ。「総力を結集」ってのはまさにああいう状態だよ。
>転送量を1/3に削減しないと閉鎖、ってもんだから、新しいプログラム組んでさ、
>そしたらほんの何時間かで完成したんだよ。それが聞いてくれよ、目標は1/3だったのに
>1/16まで圧縮に成功しやがったんだよ。職人技なんてもんじゃねえよ、神技だよ。
>でもよ、そうやって頑張る人がいた一方で、「ボクの肛門も閉鎖されそうです」とか駄スレ立ててたバカも
>いたわけだよ。ちょうど、今のお前みたいにな。
>だからよ、俺たちは総力を結集して、お前のバカ度を1/16に圧縮しようと思うよ。
>ま、圧縮後でもお前のバカ度はこの世に生かしておくことのできないレベルだけどな。
>要するに俺らの力を結集してもお前を助けることができないってことだ。
>わかったら、まわりに迷惑をかけないようにひっそりと死んでくれよな

ってコメントあったんですけど、この中の「ボクの肛門も閉鎖されそうです」ってスレ探してます。
だれか教えてください。










77 名前:名無しさん@お腹いっぱい。 [02/03/10 18:42.net]
Solarisでプログラミングの勉強して何になるの?
滅びるOSにしがみついてるヤツには未来は無いな(w
Solarisを選んだ時点で負け組確定だろ。
若いうちから人生捨てるとは馬鹿なヤツだ >>1

*BSDもSolarisもLinuxにひれ伏してるじゃん。
これからはLinuxの時代だ!

78 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

79 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 18:52.net]
>74

理解の助けに、getopt(3)の日本語manualのlinkも貼っておこう。

# 日本語manualが、NetBSDでもFreeBSDでもsection 3は未訳なので
# GPL版のドキュメントなことに注意。でも基本は一緒。

www.linux.or.jp/JM/html/LDP_man-pages/man3/getopt.3.html
(↑と同じ)www.linux.or.jp/JM/html/LDP_man-pages/man3/getopt_long.3.html
(↑と同じ)www.linux.or.jp/JM/html/LDP_man-pages/man3/getopt_long_only.3.html

80 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 19:08.net]
>>77 オマエみたいなのはこっちに来い!
pc.2ch.net/test/read.cgi/unix/999172129/l50


81 名前:80 mailto:sage [02/03/10 20:04.net]
ちょっとヒートアップしてしまったが・・・本題に戻しますか。
Solarisのgetopt(3C)の解説はここを見るといいでしょう(ただしEnglish)。
docs.sun.com/ab2/coll.40.6/REFMAN3A/@Ab2PageView/107180

あと、Solaris上のプログラミング一般についてはここなんかいいかも。
docs.sun.com/ab2/coll.141.7/@Ab2CollView

あと、 soldc.sun.com/ も参考になるかも(ただしEnglish)。


82 名前:past-looking man mailto:sage [02/03/10 20:11.net]
77にマジレス
past-lookingな傾向はMacコミュニティにもLinuxコミュニティにも、
そしてUNIXコミュニティにもあるね。SolarisよりLinuxすすめる
根拠がわからない。10年後に今を振り返ってみたらどっちもどっちだよ。
きっとね。

高校生がUNIX使うのは悪くないよ。そういう高校生のなかから、
大学生になってUNIXに飽きて何か新しいことをはじめる人が
でてきたら面白い。

83 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 20:19.net]
>82
以前からSun関連スレで暴れてた、自称Linux使い。
厨房板等で荒し用perl scriptをコピペしてお山の大将、んで現在Unix板他を荒らしていると。

よって、今後一切マジレス無用。

84 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 21:37.net]
>*argv は test1
>**argv は t
>を表すって事ですよね?

>つまり「char型の配列を要素とする、配列」と言うことで間違って無いですよね?

うん、そんな感じで理解してれば良いと思うよ。

しかし、最近荒れ気味のUNIX板でオアシスのようなほのぼのとしたスレだ。
>>1も良い親父を持ったものだな〜。
Ultra10使ってる高校生なんて見たこと無いよ。
どれほどのスペックのマシンなんだい? >>1

頭のおかしな人達の標的にされるといけないのでsage進行でマターリ行きましょう。

85 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/10 22:22.net]
みんなぁ!ここから先はサブマリン攻撃だ(sage侵攻)

ところで、、、もらったポインタをインクリメントするのは
オジサン本能的にチビっちゃうな >>1

インクるデクるときは、ポインタの写しをそうする方が安全だよ、
mallocとか使い始めるとわかるかもしれんけど。

# あ、そこ、CPUパワーのムダ使いとかいわないように




86 名前:帰宅部高校1年 mailto:sage [02/03/11 23:26.net]
>>75
そうですよねー。

>>79 >>81
とても参考になります。日本語の情報は本当にうれしいです。
ありがとうございます。

>>84
詳しくはわからないんですが、起動するときに
UltraSPARC IIi 300MHz / 256MB と出てます。

>>85
なるほど・・・勉強になります。
int argc_copy
char **argv_copy
とかしてやってみます。

87 名前:  mailto:sage [02/03/12 01:01.net]
>>86
argcはコピらんでもええよ、、、
もともとmainにやってくるときにコピられてるんだから。


88 名前:名無しさん@お腹いっぱい。 [02/04/21 14:03.net]
何が楽しくてSolarisなんて使うかなぁ?
実用性も楽しさもLinuxの方が遙かに上だと思うんだけど?

煽りとかじゃなくてマジで。

89 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/21 14:09.net]
Linux だとお前のような馬鹿がうじゃうじゃいるからじゃないかなぁ?

煽りとかじゃなくてマジで。

90 名前:a mailto:sage [02/04/21 14:09.net]
>>88
人によって好みも価値観も違いますからね。
「〜の上」と根拠も示さずに書くのはただの
煽りと変わりませんよ。

91 名前:何が何でも Solaris IA版存続を願う会2ch支部長 mailto:sage [02/04/21 14:25.net]
デバイスドライバやプリインストールアプリの豊富さ等ではLinuxの方が上でしょうな.
SMP/multithreading/CSIに基づいたI18NなんかではSolarisに軍配が上がるでしょう.


92 名前:何が何でも Solaris IA版存続を願う会2ch支部長 mailto:sage [02/04/21 14:36.net]
まぁ>>91で挙げたSolarisの強みというのは,Linuxの強みに比べると
一般のエンドユーザには直接的には実感しにくいところではあるかな.

でも,Apache2の正式リリースにより,multithreadingについては
再評価されるのではないかな,と思っていたりする.


93 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/21 18:03.net]
>>92
そうそう、
>>88 はただの煽りだろーけど、
一般エンドユーザー代表意見としては
結構的を得ているかも。

SMP/multithread/CSI i18n は FreeBSD/NetBSD あたりでわりと頑張ってる人が
いるみたいなので、個人的には *BSD に期待。

solaris/ia も存続希望〜。でも sun にとってはあんまりウマ味ないかもなあ。


94 名前:名無しさん@お腹いっぱい。 [02/09/28 13:07.net]
プププ、ここは化石にしがみつく馬鹿が集まるスレですかぁ?

Linuxの方がすべてにおいて上なんだけどねぇ・・・

それにきずかないSun信者ってかわいそうだね(w

95 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 13:13.net]
>>94
dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%A4%AD%A4%C5%A4%AF&sw=2



96 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 13:21.net]
きずかない、って… 小学生?

97 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 13:53.net]
1はどこいった?

98 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 14:05.net]
今はUltra10に Linux入れてます。
やっぱ、メジャーな方が何かと都合がいいですね。

99 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 15:39.net]
犬厨ってどうしようもないな・・・

100 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 16:57.net]
♪〜
アイマン・イヌチュー
ヨーアン・イヌチュー
ウィーアー・イヌチュー…
ブラザーズ!
♪〜

(皆さんご一緒に…)
(1行4拍でラップ風に)

101 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 17:33.net]
馬鹿はおとなしく隔離されてろよ・・・

102 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/28 20:28.net]
>>100
これ、もーらい。
今度の学祭バンドの余興で
Solaris同好会の隣で嫌がらせ演奏してやろう(w

103 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/29 21:23.net]
う〜ん、犬厨の考えることは理解できんな。

104 名前:山崎渉 mailto:(^^)sage [03/01/15 13:29.net]
(^^)

105 名前:名無しさん@お腹いっぱい。 [03/01/27 15:11.net]
Java ( java.sun.com/j2se/1.4/ja/ ) とか
Qt ( www.jp.kde.org/~ichi/qt-2.3.2/index.html ) とか
OpenGL ( www.opengl.org/developers/documentation/specs.html )
にもチャレンジしてみては。



106 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/27 22:36.net]
犬厨は1つの側面で総て語ろうとするから怖いね。
Winも歴史的経緯抜きで考えるといい面もあるけど、もちろんな如く総て否定して煽りいれてそうだね。
。。。だれもLINUXバカにしてないのに
思想的なバカはどこいってもバカなのは確かだす


107 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/27 23:15.net]
遅レスにも程があるぞ

108 名前:名無しさん@お腹いっぱい。 [03/02/09 13:52.net]
Solarisプログラミングを初心者が
学べるご本はありますか?
教えてください。

109 名前: mailto:sage [03/02/10 11:21.net]
>>108
この辺から選んでみれば?
ttp://www.gihyo.co.jp/books/series.php/hyopro

取敢ず、プログラム組んで動かすのもいいかも。
機種依存(SPARC/IA,*Linux,*BSD)の問題はその後だね。

110 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/12 13:26.net]
>>109
ありがとうでつ。がむばってみまつ。

111 名前:ZZ突風 mailto:sage [03/02/17 19:03.net]
>>88
こういう人って 時々いるよね…
「何が楽しくて」って、
何も判らないなりに父親に与えられた物を使ってみてるんでしょうが。

>>89
Linuxウンヌンはともかく、「バカ」には同意。



112 名前:_ mailto:sage [03/02/17 22:43.net]
俺はデモのコードを読んで勉強したぞ。がんがれ>>1

113 名前:山崎渉 mailto:(^^) [03/04/17 12:31.net]
(^^)

114 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

115 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん



116 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

117 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

118 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

119 名前:名無しさん@お腹いっぱい。 [03/08/17 04:27.net]
キタ━━━━━━(   )(゚  )(∀゚ )(゚∀゚)( ゚∀)(  ゚)(   )━━━━━━ !!!!!

【Solarisデバイスドライバ本】発売記念あげ
ttp://www.oreilly.co.jp/BOOK/solaris/
これで、やっとsolarisでデバドラ書けるぜ!!!!!!!!!!!!!!!!
うれぴい


120 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

121 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/17 04:33.net]
>>119
情報THX 私も買います。

122 名前:119 mailto:sage [03/08/17 05:19.net]
>>121
もう、自分は書きまくるよ。
1週間に1つの割合でデバイスドライバ書くぜ!
1月に4つで、1年に12ファイルの勢いです。
まずはUSBのデバドラとか書こうかな。


123 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/17 13:29.net]
1/週
4/月
12/年

???


124 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/17 14:00.net]
3ヶ月で挫折する予定です

125 名前:119 mailto:sage [03/08/17 19:41.net]
>>123,>>124
いや、違います。
tarでアーカイブしてあるんです。(1つのtarファイルに4つのデバドラ)w



126 名前:名無しさん@お腹いっぱい。 [03/08/17 20:50.net]
保守あげ

127 名前:名無しさん@お腹いっぱい。 [03/09/18 03:13.net]
Solaris(x86/SPARC共に)のXawの、asciiTextWidgetでは
XIMを使った日本語入力はできんのだろうか?
Linuxで上手く動いたコードを元に試行錯誤を繰り返してるが、
XtVaCreateManagedWidget実行後、標準エラー出力に

Warning: we can not open any input method

と出て、さっぱりIMが使えない...


128 名前:名無しさん@お腹いっぱい。 [03/09/19 05:55.net]
学校の授業でいきなりUNIXやらされてます・・・。
もう、頭がウニです。ウニックスです(TT
お礼するから代わりにレポートやってくれる人がいたらどんなに楽なことか・・・

と、言ってみるテスト。

129 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/19 11:04.net]
>>128
life.2ch.net/test/read.cgi/yume/1063022091/

130 名前:  mailto:  [03/09/19 11:44.net]
>>128
今時、いきなりUNIXやらしてくれるんんて、いー学校だな。
まぁせいぜいがんばれよ。
やってほしけりゃさりげなく課題はっときなよ。

131 名前:128 [03/09/19 13:52.net]
128です。
全然さりげなくないですが
私のなけなしの頭では限界っぽいのでどなたかご教授ください・・・。

jp.y42.briefcase.yahoo.co.jp/bc/diamondguppy/lst?&.dir=/UNIX&.src=bc&.view=l&.last=1

本片手にコマンドの意味を調べてるんですが、なんだかもう・・・(泣

132 名前:128 [03/09/19 13:54.net]
しかもアップしてみたけどアクセスできなかった・・・。
WINも満足に使えないようでは・・・

133 名前:名無しさん@お腹いっぱい。 [03/09/19 19:42.net]
もっと楽しくやれば簡単に覚えられるよ。

134 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/20 03:03.net]
>>128
早くうpしてよ。
寝ないで待ってるんだから。


135 名前:名無しさん@お腹いっぱい。 [03/09/20 03:06.net]
>>128の"お礼"に期待あげ



136 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/20 03:10.net]
>>128
wordファイルでなくて、textファイルにしてよ。


137 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/20 03:33.net]
>>128
【問題1】
1) 標準入力から読み込んだストリームで、
第1行目以降のプリプロセッサ処理行を表示するプログラム
2) 1.getcharで標準入力から1文字読み込み
2.前の文字が改行でないなら次の行を読み込み
3.前の文字が改行の場合、現在取得文字が'#'の時にstatusフラグに1を立てて
4.次行でstatusフラグが1の場合、標準出力に1文字出力する。
5.以上をストリームの終わり(EOF)まで繰り返す。


138 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/20 03:43.net]
>>128
【問題2】
めんどいので端折るが、shellの勉強をすればすぐできる。


139 名前:137 mailto:sage [03/09/20 03:46.net]
>>137
【訂正】
 2.前の文字が改行でないなら次の行を読み込み
         ↓
 2.前の文字が改行でないなら次の文字を読み込み
                 ^^


140 名前: mailto: [03/09/20 05:16.net]
なんだかソフトウェア作法とか勉強したらすぐにできそうだな。

141 名前:名無しさん@お腹いっぱい。 [03/09/22 15:40.net]
アホみたいな質問なんですが、
OS起動時に「/」がグルグル回るようなプログラムはどうやって組めばいいんでしょう?

142 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/22 15:57.net]
ディスプレイの前でグルグル回る

143 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/22 19:11.net]
echo -n "-^H\^H|^H/^H-^H"

144 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/23 11:54.net]
>>143
# echo -n "-^H\^H|^H/^H-^H"
-n -^H\^H|^H/^H-^H
こうなるが
csh% foreach n ( - / | \ - );printf $n"\c";sleep 1;printf "\b\c";end
ってすると"\"のとこだけは表示されないね。
\がコントロールコードの字句解析を打ち消すのがネックか?

145 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 01:04.net]
確かCR(13、行頭に戻る)を使ってる。こんな感じ?

#!!/bin/sh
while :
do
  for c in - / \| \\
  do
    /usr/5bin/echo "$c" "\r\c"
    sleep 1
  done
done




146 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/26 17:55.net]
>>137
どういう動作をさせたいのかよくわからんね。
なんとなく、「先頭行以外の行頭#の次の行からstdinをstdoutにコピー」になってる気がするのだが…


147 名前:  mailto:  [03/09/27 08:46.net]
5bin/echo を使うのがキモだね。

148 名前:名無しさん@お腹いっぱい。 [03/10/30 19:53.net]
なんつーか、トラブル気味なので、教えてください。
とりあえず、問題はここまで絞り込んだんだけど、
ここからがぜんぜんわかりません。
Sun.docs.comにこういう話ってでてないよね?

Solaris9(64bit)で以下のコードのプログラムを動かしたとき、
必ずsegmentation faultがおこる。

struct {
inta;
shortb;
}A;
typedef A *PA;
int main(){
PApa;
intnum=3;

pa = (PA)malloc(sizeof(PA)*num);
pa[0].a = 1;//ここでsegmentation fault
return 0;
}

このとき、ILP32ではうまくいくが、LP64(xarch=v9)ではうまくいかない。
mallocが問題だと思うんだけど、どう問題なのかがよくわからない。
Solaris9の64bitプログラムに詳しい方、ぜひぜひ教えてください。
よろしくお願いします。


149 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/31 00:08.net]
ポインタの配列しか確保してねーじゃん。K&R本から(以下小言


150 名前:名無しさん@お腹いっぱい。 [03/10/31 09:17.net]
>148

 ぐは。間違えてる。
 正しいのはこっち。

> struct {
>  int a;
>  short b;
> }A;
> typedef A *PA;
> int main(){
>  PA pa;
>  int num = 3;
>
>  pa = (PA)malloc(sizeof(A)*num);
>  pa[0].a = 1;//ここでsegmentation fault
>  return 0;
> }

 ちゃんと構造体の大きさを個数分確保してるんだけど、
 うまくいかない。32bitだとうまくいって、64bitだとうまく
 いかない理由がわからない。なんでだろう???


151 名前:  mailto:sage [03/10/31 23:12.net]
sizeof(A)の値はどーなってるの?

152 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/31 23:58.net]
構造体の列をそうやって一括でmallocするのが諸刃の剣だっ
ツーことは分かっているヨナ?

153 名前:名無しさん@お腹いっぱい。 [03/11/02 14:30.net]
まさか stdlib.h を include してないってオチはないよな?

154 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/02 14:35.net]
>>152
一括でmallocして何の問題があるつうのよ
おまえ諸刃の剣って言ってみたかっただけだろ

155 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/02 18:00.net]
>>148
こうすればいいんだろ。
32bit、64bitどうこう言う前にK&R本が必要では?

typedef struct {
int a;
short b;
}A;

typedef A *PA;

int main(){
PA pa;
int num = 3;

pa = (PA)malloc(sizeof(A)*num);
pa[0].a = 1; //ここでsegmentation fault
return 0;
}



156 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/02 18:53.net]
>>155
K&R本がどうこう言う前に>>150をよく見ては?


157 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/03 00:04.net]
>>150
たぶんコンパイルオプションがおかしいんじゃない?
ちゃんと64bitライブラリをリンクしてる?


158 名前:157 mailto:sage [03/11/03 00:18.net]
下のソースでコンパイルも実行も問題なかった

/*
 * c -xarch=v9 -o aaa aaa.c
 */
#include <stdlib.h>

typedef
struct {
        int     a;
        short   b;
} A;

typedef  A *    PA;

int main(){
        PA      pa;
        int     num = 3;
        pa = (PA)malloc(sizeof(A)*num);
        pa[0].a = 1;
}


159 名前:155 mailto:sage [03/11/03 00:33.net]
>>156
>K&R本がどうこう言う前に>>150をよく見ては?
は?
言ってる意味がわかんねーよ。
155のソースでは駄目ってこと?
>>158は、155のソースにincludeつけただけじゃん。
要するに
struct {
inta;
shortb;
}A;
は、
typedef struct {
int a;
short b;
}A;
だろ。


160 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/03 00:39.net]
1 stdlib.hをincludeし忘れ
2 mallocの戻り値が32bit整数と見なされ
3 64bitポインタの上位(下位?)32bitがpaに格納され
4 あぼーんされ

161 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/03 00:44.net]
>>159
typedefが無いとコンパイルエラーになるから、
それは単なるコピペミスだと思う

162 名前:155 mailto:sage [03/11/03 00:49.net]
>>160
それ以前に>>150のソースをそのまま
コンパイルすると警告が続出なんですけど。


163 名前:155 mailto:sage [03/11/03 00:51.net]
>>161
なるほど、そういうことですか。

164 名前:昼勤 ◆6IhGf2WyCA mailto:sage [03/11/04 21:34.net]
プログラミング好きですよ

165 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/05 02:00.net]
iconv()に関して質問させてください。
static int KONBU(char *to_code, char *from_code, const char **inp, char **outp, size_t *inl, size_t *outl)
{
iconv_t icv_hook;
size_t ret_val;
icv_hook = iconv_open(to_code, from_code);
if(icv_hook == (iconv_t)-1)return(ANS_ERR);// NG Return
ret_val = iconv(icv_hook, inp, inl, outp, outl);
iconv_close(icv_hook);
if(ret_val == (size_t)-1){
if(errno == EILSEQ) printf("EILSEQ\n");
else if (errno == E2BIG) printf("E2BIG\n");
else if (errno == EINVAL) printf("EINVAL\n");
return(ANS_ERR);// NG Return
}
return(ANS_OK);// OK Return
}
上記のようなiconv()を用いた関数があります。
unsinged char *sb, db;
ret = KONBU("JIS7", "PCK",(const char **)&sb,(char **)&db,2,8);
そしてこのように呼び出しており、unchar sbには
83 31 83 32 83 34 ....といったようなデータを渡しています。
実行結果はEINVALが返ってきます。
ここで質問なのですが
@第5引数の2はsbを2バイトずつ読み込むということでよろしいのでしょうか?
A第6引数の8は何を指すのでしょうか?
Bsbには0x81 0x31 ....というようにヘキサを読み込ませているつもりなのですが
そもそも文字列で渡すべきなのでしょうか?
CEINVALのエラーの意味がよくわからない。
以上4点になります。
厨な質問かとは思いますがご教授お願いいたします。



166 名前:  mailto:  [03/11/05 09:59.net]
てか○数字使ってる時点であぼーん。

167 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/05 10:42.net]
はい、次の人どうぞ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<90KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef