1 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:24:38 ] 質問する前にGoogleで検索しましょう。www.google.co.jp プログラミングと関係ない質問はそれぞれの板の質問スレへ。 前スレ スレ立てるまでもない質問はここで 84匹目 pc11.2ch.net/test/read.cgi/tech/1184603423/ _,rr-―''''¨゙゙゙ ̄ ̄ ̄ ̄ ̄`゙゙゙゙゙゙゙゙''ヘi、、 ,,,,-―---、 ,r‐'″ ._,,,, `'lri,!'''″ ゙l .,,,″ ,,r'"` ゙゙l, ゙ヘ, | !アr, .l°.ェ'ニ,コ .| ゚ヘ、 | `'i、 .く_,、vr''″ ., ゙'i、 .,,/ ゙X、 ト ゙!,゛ .,,r‐--、 ,、_,、 .,,,,r‐'″ | } .,,r‐'^’ .|゜ め゙゚“゙゙~゛ |  ̄` .,l゙ | ,i´ ,l゙ ゙!、 ,i´ ,ノ .'┐ ,,-° '=,, /` .゚!, ,,,,r'″ ゙┐ ,l゙ ゚'r, .''''"` │ .,,-''i、 / `''x, .| | .,,r'" .゙┐ ,i´ ~'ヘi,,, | |_,r・″ 'ヘ,、 l゙ `¬--|i,,,,,,,,,,,,,,,,v、r',广 ゙ヘ=@ ,l゙ `゙'ーぃ--r'″ `'―、,,,,/
641 名前:デフォルトの名無しさん [2007/10/16(火) 09:58:27 ] 論理的な問題に直面してるんですが 数学の論理学か何かの分野で解決できないか、と考えています。 そんな分野はありませんか? 例えば、フラグを使う場合ってどういうときですか? 基本的に"go to"を使わなくてもどんなプログラムの流れでも作れるはずですよね? それと同様にフラグを使わなくてもどんなプログラムの流れでも作れるんですか? フラグが「どうしても」必要なときってあるんですか? あるとしたら、どうやってそれを判断するんですか? 数学的に判断できる方法があるなら教えてください。 ちなみに記号論理学、オートマトン、フォーマル・ランゲージなどのクラスは (理解しているかどうかはともかく)取りました。 ※返事は少し遅くなるかもしれません
642 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 10:09:48 ] >>641 >そんな分野はありませんか? Prolog ただし、フラグの必要条件を定義したPrologプログラムと いうものは見たことがありません。
643 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 10:27:29 ] フラグを使うときは、 現在の条件判定の結果を将来使うとき・・・かなぁ できるできないで言うなら、 フラグを立てる代わりに処理を分岐させれば、 フラグを使わないで済ませることはできるんじゃないかと
644 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 10:31:37 ] >論理的な問題に直面してるんですが は >例えば、フラグを使う場合ってどういうときですか? のことなのか? それとも宿題を解決したいのか、あるいは暇を潰したいのか 質問の意図がよくわからない。
645 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 10:41:20 ] 継続を陽に扱える言語ならフラグは不要では? 継続を陽に扱えなくてもCPSで書けば行けるかも。 メモ化が当り前の言語なら毎回評価式を書いても問題ないし。 フラグの必要性って言語仕様に依存するんじゃね。
646 名前:デフォルトの名無しさん [2007/10/16(火) 11:22:53 ] C言語でファイル削除の関数を教えてください
647 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 11:29:41 ] >>646 unlink ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/unlink.2.html
648 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 11:31:31 ] remove
649 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 13:32:47 ] ハードリンクって概念知らないと unlink って直感的ではないよなぁ 知ってると、処理の内容を短く正確に表した名前だと思うのだが
650 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 16:10:20 ] リリースしたバイナリの実行時にランタイムやフレームワークのインストールが不要な 開発環境で、現在入手可能なものって何がありますか? ちょっと頼まれ物をVB.NETで作ってるんだけど、.NETをインストール する必要があるという点がちょっと難点なので、可能なら他の 言語で組み直して欲しいと言われました。実行環境はWin32(GUI)です。 ご存じの方、ご教示お願いします。
651 名前:デフォルトの名無しさん [2007/10/16(火) 16:11:19 ] VB2005でメニューを選択するようなフレームを画面の左側に作りたいんですが 専用のツールはありますか?
652 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 17:47:02 ] >>650 VC++
653 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 17:52:30 ] VC++で生成された実行ファイルは kernel32.dll, user32.dll等々の多数のランタイムライブラリに依存しているわけだが。
654 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 17:54:28 ] >>650 HSP
655 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 17:54:59 ] ウィザードはデフォルトで標準ライブラリとダイナミックリンクするように設定されてるしね
656 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 18:21:57 ] >>612 その他のツール EmEditor では韓国語が表示されたからです。 //#define DEF_TAIWAN 1 //#define DEF_CHINESE 2 //#define DEF_KOREAN 3 //#define DEF_ENGLISH 4 //#define DEF_JAPANESE 5 って global.h にあるんです
657 名前:デフォルトの名無しさん [2007/10/16(火) 18:24:10 ] Set 'No Move' Tiles &Automatically... It may takes several minutes. The directory \def doesnt exist. Accordance With Sub-Grid を それぞれ日本語訳してくれないでしょうか?
658 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 18:46:37 ] >>657 翻訳スレあるよ。
659 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 19:04:08 ] >>658 誘導ありがとうございます
660 名前:デフォルトの名無しさん [2007/10/16(火) 19:25:30 ] アホみたいな質問ですがすみません。 授業の課題で標準偏差を使用するプログラムを出されたんですが、 エクセルで求めた標準偏差の値と、Cで標準偏差の公式どおりに組んで求めた 値がかなり違うんですが、どちらを取ればいいんでしょうか・・・
661 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 19:27:42 ] 宿題スレあるよ。 ってか何でデータを一切出さないのかがわからない。
662 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 19:42:59 ] XMLのDTDとXML Schemaって何か大きな違いってありますか? Schemaの方がより詳細に定義を出来るという程度の違いでしょうか
663 名前:660 mailto:sage [2007/10/16(火) 19:52:00 ] >>661 サン 「宿題片付けますスレ」とはちょっと違う気がしてここにしました データは 3.14 5.00 3.57 5.44 2.14 7.00 5.00 3.33 以上8つの浮動小数点です。 エクセルの機能では1.560611144と出ます。 一方、Cで公式通りに組んだ物は1.459818と出ます。 プログラムミスの可能性を疑ってネット上のサンプルソースでも計算しましたが同じでした。
664 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:02:10 ] コンピュータは正確な小数を表現できないんだよ だから小数の計算は実装によってまちまち
665 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:09:09 ] >>663 普通に計算したら1.56061114403になったぞ(in python)。 標準偏差自体を理解していないと思われるので数学の教科書を読み直せ。 元になる公式を理解していないのではプログラムを正しく書けるわけがない。
666 名前:641 [2007/10/16(火) 20:10:58 ] >>644 「直面している論理的な問題」は「フラグを使う場合はどういうときか」ではありません。 実際のプログラミングで悩んでいます。フラグはその一部です。 ここでアップしても「宿題スレ行け」と言われるだけでしょうからこのスレに相応しい質問に変えているのです。 >>642 PrologもListもやりましたが、今回の件に応用できそうでしょうか? >>643 >フラグを立てる代わりに処理を分岐させれば、フラグを使わないで済ませることはできるんじゃないかと それが質問の主旨です。これが真であるならば、 「分岐さえさせれば、フラグはまったく使わなくてもよい」ということになりますね。 >>645 それは関数型言語のみで不要ということですか? >>643 さんと>>645 さんのレスを読んでいて気付いたのですが よく考えれば「フラグ=論理式の簡略化されたもの」ですね。 ありがとうございました。
667 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:24:20 ] 全部のレスにレスする必要はない
668 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:34:17 ] >>664 サン どうやらそのようです・・・ 手持ちの関数電卓で地道に公式通り計算しても1.459818でした・・・ >>665 サン 一応、統計を習っているので標準偏差は理解しています・・・ 665サンの計算結果を考えてもエクセルの方が正しいようですね
669 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:36:56 ] 母集団標準偏差と標本標準偏差では計算方法が違うのだが それぞれどちらを使って求めたの?
670 名前:デフォルトの名無しさん [2007/10/16(火) 20:38:21 ] 新たな質問です。 if文の条件とforループ、関数の呼び出しを記号論理式で書いて解決する分野はないんですか? 正規表現と組み合わせて書ける気がしているのですが、実際にそうやっているところを見たことがありません。
671 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:49:41 ] >>669 サン レスdです 求めたい値は母集団標準偏差だったのですが、 エクセルの関数名を逆に覚えていましたorz エクセルで標本標準偏差、Cでは母集団標準偏差を求めていたようで 値が異なって当然でした・・・
672 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:11:51 ] 最終的にC++を使えるようになりたいんだけど 手始めに覚えるプログラミングは何がいい
673 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:13:20 ] Hello World!
674 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:33:47 ] >>672 いきなりC++で問題は無いよ。 少なくとも、言語習得自体を面白がれる奴なら何も問題は無い。 頭が足りないせいで行き詰まるというのは、たかが言語の習得においてはまず起こらないこと。 (頭が成否を分けるのは、習得したあと優れたものを優れた書き方で作ろうとしたときの話)
675 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:48:29 ] >>670 プログラマとしての見解だが、正規表現との組み合わせは最悪。 正規表現ほど、テストデータを作るのが困難なものはない。
676 名前:デフォルトの名無しさん [2007/10/16(火) 21:54:30 ] 組み込み向けのRPC探しているんですが、サーバからクライアント へのコールバック機能つきなやつないですかね? CORBAみたいに巨大じゃないやつで、言語はCかC++で。 XML-RPC拡張しちゃおうかとも思いますが。 オープンソースであるとありがたいです。
677 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 22:01:19 ] / ̄ ̄\ / _ノ \ | ( ●)(●) . | (__人__) | ` ⌒´ノ いきなりC++は挫折するだろ・・・常考常識的に考えて・・・ . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
678 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:06:25 ] >>670 どんな宿題なのか書けよ。
679 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:13:34 ] >>672 を良く見ろ。 「手始めに覚えるプログラミング」であって「手始めに覚えるプログラミング言語」じゃない。 もしかしたらJavaあたり習得済みかも知れん。 つまり最初にどんなプログラムを作るかってこと。>>673 が正解。
680 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:21:26 ] 正直、最初にHello,Worldって何かなあ、と思う 初心者は出力だけじゃなくて入力を使った(ある意味で)動的なプログラムの方が食い付きが良いんじゃないかな #include <stdio.h> int main(){ unsigned int x , i; scanf("%u",x); printf("Hello , World"); for(i=0; i<x; i++) putchar('!'); return 0; }
681 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:49:08 ] 実際basicすら触らずc++使えるやつこのスレにいるの
682 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:54:22 ] 最初は何の言語が良いだのよく言われるが、 後から振り返ってみれば最初は何でも良かったと思う 初心者がC++を理解するのはきついかもしれないが、 いろいろいじってりゃそのうち覚えるって話
683 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:28:41 ] より悪いC++あるいはC++のサブセットとしてCを学んでからという選択肢もあるかも
684 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:35:23 ] >>650 です。 >>652 やっぱりVC++ですか……。 >>654 HSPも検討してみましたが、情報量の多さからVBを選びました。 が、HSPにするしかないかも?と思ってます。 お二方ありがとうございました。
685 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:38:30 ] ランタイム不要ならActiveBasicの方がいいよ
686 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:47:14 ] >>684 D言語にしなさい
687 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:10:43 ] D言語なんてろくにサンプルも無いだろ・・・
688 名前:デフォルトの名無しさん [2007/10/17(水) 01:53:05 ] >>680 初心者にいきなり scanf を教えるなよ〜 変なクセがつくだろがぁ!
689 名前:デフォルトの名無しさん [2007/10/17(水) 02:30:07 ] scanf禁止w 自然言語と同じで、 なにかしら習得したらそれとの比較で覚えてくじゃん。 だったら最初は楽なのがいいとオモ
690 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 02:39:07 ] C++にすんなり移行できる言語は何よ
691 名前:デフォルトの名無しさん [2007/10/17(水) 02:44:32 ] >>690 すんなり移行なんてできねぇよ。 ゲームじゃねぇんだから、スキルアップに有利とかねぇよ。 プラプラしたいんだったプラプラ覚えればいいだろ。
692 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 02:46:58 ] BASICから入って物足りなくなったら高級言語に手を出すってのが一般的だろ 今じゃHSPがBASICの代わりだ
693 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 02:52:29 ] 遠回りにもほどがあるだろw
694 名前:デフォルトの名無しさん [2007/10/17(水) 02:58:50 ] C++ は C に比べて、コメントに // が使えたり 変数を好きな場所で宣言できたりして、最初は結構気に入ってたんだが int main(array<System::String ^> ^args) ↑コレ。やたら ^ が出てき始めてからウザくなってきた。 なんでまた、こんな見苦しいことになっちゃったんだ? ^ > ^ って何よ?ヘタな顔文字みたいやん。人を小バカにしたようなフザケた言語! これじゃ Perl よりヒドイじゃん。クソ言語になり下がったC++に放尿!
695 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:03:43 ] >>694 まてそれはMSの罠だ。C++/CLIという別言語だから、いっしょにしないで。
696 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:05:36 ] C++を分かってない初心者がよく言うわ
697 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:12:13 ] ^し^
698 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:26:17 ] VC.NETで、ソースを全くいじらないでCtrl+F5でプログラム起動しているのに 「このプロジェクトは変更されています ビルドしますか?」 のダイアログが起動毎に出るようになってしまいました。 特に何もしてないはずなんですけどいきなりこの症状が出るようになりました。 直し方ってありますか?
699 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:35:09 ] あります
700 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:39:43 ] >>699 ^> ^
701 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:42:31 ] ^ん^
702 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:45:40 ] HSPってBasicなのか???
703 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:58:43 ] ja.wikipedia.org/wiki/Hot_Soup_Processor Hot Soup Processorは、米ダートマス大学で開発されたBASIC言語の書式をベースにして1994年に開発が開始され、1996年以降フリーウェアとして公開されている。BASICとの互換性はほとんどない。
704 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 04:03:39 ] >>670 それと、Prologは文脈自由文法のクラスだから、 節の定義だけで、正規表現よりも強固な検索条件が 書ける。forループは for(N,N,E) :- N =< E. for(S,N,E) :- S =< E,S2 is S+1,for(S2,N,E). と定義できます。 「分野」がなにを意味するか解らないが、 画像処理と極めてリアルタイム性の高い アプリケーション以外ではほとんどの分野で 最適な言語です。ただし、あまり規模の 大きい対象には向きません。
705 名前:670 mailto:sage [2007/10/17(水) 06:34:11 ] >>675 ありがとうございます。 そうですね、困難かもしれません。 >>704 「正規表現よりも強固な」検索条件が書けるって凄いですね。 その定義、一応意味は分かります、自分で書けと言われたら書けないでしょうけど。 二年くらい前によくPrologのスレによく質問書き込んでました。 Prologは時間があったら勉強したいんですけど今は無理ですね。 「分野」というのはオートマトンとかアルゴリズムとかの科目(?)の意味です。 離散数学と一緒に記号論理学を習ったくらいでそれ以上のは知りません。 もしかしたら、その上にプログラミングの効率を上げる教科があるのかなと思ったのです。 擬似コードを書いて質問しようと思ったのですが、 特殊なライブラリをたくさん使っているので無理っぽいですね・・・。 形を変えてまた質問したいと思います。 ありがとうございました。
706 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 07:04:31 ] >>705 正規表現について私が使った言い回しは多分適切では ないでしょう。ただ、次のことは言えると思います。 複雑な正規表現で頭を悩ますくらいなら、Prologで句構造文法を学んだ方がよい!
707 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 09:35:00 ] >>705 ttp://www.amazon.com/dp/0387964800/
708 名前:705 mailto:sage [2007/10/17(水) 09:42:44 ] >>706 Prologって本当に論理をそのまま書いていくと答えが出るので面白いですよね。 でも、その「論理をそのまま書いていく」のが結構難しかったりします、自分には。 時間ができたら必ず勉強します。
709 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 09:48:32 ] まあHaskell極めれば他の言語なんて要らなくなるけどな。
710 名前:705 mailto:sage [2007/10/17(水) 09:55:14 ] >>707 僕が探し求めていたのはそれっぽいです! コメントもすべて5つ星で褒めちぎってますね。 やっぱり、そんな方法があったんですね。 この表紙、前にいた大学の図書館で見た覚えがあります (偶然ですが、僕が読んでいたPrologの本はこれと同じ出版社の本でした)。 早速、図書館にあるか調べてみます、最終的には買うつもりですが。 ネットにPDFでも落ちてないですかね・・・いろいろ探してみます。 早く読みたいです! ありがとうございました!
711 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 10:58:15 ] プログラム応用数学の参考になるサイト教えて
712 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 10:59:21 ] 特定しますた www.google.co.jp/search?q=%22%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E5%BF%9C%E7%94%A8%E6%95%B0%E5%AD%A6%22&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP229JP231
713 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 16:58:11 ] 正直Rubyがいいと思う。
714 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 17:57:59 ] なにが?
715 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 18:11:36 ] BasicMagazineのHPが閉鎖されていましたが、どこかへ移転されたのですか?
716 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:38:01 ] 閉鎖されていたんなら移転じゃなくて閉鎖だろう
717 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 10:38:32 ] いかにも自分が勉強してそうな感じのするサイトってない?
718 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 13:06:32 ] >>717 pc11.2ch.net/test/read.cgi/tech/1189527878/717
719 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 13:16:06 ] w
720 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 14:22:52 ] c++でキーボードから 一回の入力でそれぞれ型の違う複数の変数に 値を入れるにはどうしたらよいでしょうか? たとえば cin >> a >> b; とすると同じ文字や整数を入れるにしても スペースで区切ったり、二回入力しなくてはいけませんよね そこを一回で済ませたいんです なにか方法があれば教えてください 意味不明なことかいてたらごめんなさい
721 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 14:27:35 ] cin >> a; b = a;
722 名前:607 mailto:sage [2007/10/18(木) 14:29:52 ] 以前>>607 で質問をしたものです。 >>608 さんのアドバイスにしたがって、サンプルコードを提出しようとした際に、 >>610 で返答したように必要な部分を切り出して、最小限で現象が起こるようにコード修正してたつもりがなんか挙動が変わってわけの分からん状態に陥ってしまいましたorz ・・・といった状態が何とか解消できたので今回はサンプルコード付きで質問します。^^; 開発環境 Fedora7 C++ PHP Apache 質問内容 PHPを用いてWeb画面に入力されたデータを前処理してプロセス間通信を行うクライアントプログラムを呼び出したいのですが動いてくれなくて困っています。 試した内容 Fedora7でターミナルを2つ起動して片方でServerを起動し、もう片方でClientを起動するとプロセス間通信ができている事が確認できました。 PHPを通してhello_worldとclientを実行すると、以下のような出力になります ===ここから=== exec Hello World hello world -------------------------------------------------------------------------------- exec SOCKET TEST connect start connect error:-1 ===ここまで=== hello_worldは出力できるのですが、clientはclient.ccの if( connect( s, (sockaddr*)&addr, sizeof(addr) ) < 0 ) の部分でconnectに失敗して落ちてしまうのですが、原因が分からなくて困っています。 どなたかお知恵を貸してください。
723 名前:607 mailto:sage [2007/10/18(木) 14:31:31 ] サンプルコードリスト client.php:WEBから直接呼び出すPHP hello_world.c:hello world<br>を出力 client.cc:クライアントのソースコード server.cc:サーバのソースコード ==> client.php <== <html> <head> <title>SOCKET TEST</title> </head> <body> <?php echo "exec Hello World<br>\n"; system( "./hello_world.cgi" ); echo "<hr>\n"; echo "exec SOCKET TEST<br>\n"; system( "./client.cgi" ); echo "<hr>\n"; ?> </body> </html> ==> hello_world.c <== #include<stdio.h> int main() { printf("hello world<br>\n"); return 0; }
724 名前:607 mailto:sage [2007/10/18(木) 14:35:00 ] ==> client.cc <== #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #define SOCKNAME "udsock" int main( int argc , char* argv[] ) { int len,s,result_connect; sockaddr_un addr; char smsg[2048],rmsg[2048]; s = socket( AF_LOCAL, SOCK_STREAM, 0 ); addr.sun_family = AF_LOCAL; strcpy( addr.sun_path , SOCKNAME ); snprintf( smsg , sizeof(smsg) , "%s" , "hoge" ); printf( "connect start<br>\n" ); result_connect = connect( s, (sockaddr*)&addr, sizeof(addr) ); if( result_connect < 0 ){ printf("connect error:%d<br>\n",result_connect ); exit(1); } send( s, smsg, strlen(smsg), 0 ); len = recv( s, rmsg, sizeof(rmsg), 0 ); rmsg[len] = '\0'; close(s); printf( "%s\n", rmsg ); return 0; }
725 名前:607 mailto:sage [2007/10/18(木) 14:37:47 ] 改行数の都合上#includeの改行を省略して一行に書いてます。 ==> server.cc <== #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #define SOCKNAME "udsock" int main( void ){ int counter,sb,s,len; sockaddr_un addr; char rmsg[2048],smsg[2048]; unlink( SOCKNAME ); sb = socket( AF_LOCAL, SOCK_STREAM, 0 ); addr.sun_family = AF_LOCAL; strcpy(addr.sun_path , SOCKNAME); bind( sb, (sockaddr *)&addr, sizeof(addr) ); listen( sb, 5 ); counter = 0; while(1){ if( ( s = accept( sb, NULL, NULL ) ) < 0 )continue; len = recv( s, rmsg, sizeof(rmsg), 0 ); rmsg[len] = '\0'; printf( "Server received(%d) : %s\n", counter , rmsg ); len = snprintf( smsg , sizeof(smsg) , "counter=%d : msg=%s", counter , rmsg ); send( s , smsg , len , 0 ); close(s); counter++; } close(sb); unlink( SOCKNAME ); return 0; }
726 名前:607 mailto:sage [2007/10/18(木) 14:41:25 ] 本文少しミスです。申し訳ありません。 修正前 hello_worldは出力できるのですが、clientはclient.ccの if( connect( s, (sockaddr*)&addr, sizeof(addr) ) < 0 ) の部分でconnectに失敗して落ちてしまうのですが、原因が分からなくて困っています。 修正後 hello_worldは出力できるのですが、clientはclient.ccの result_connect = connect( s, (sockaddr*)&addr, sizeof(addr) ); if( result_connect < 0 ){ printf("connect error:%d<br>\n",result_connect ); exit(1); } の部分でconnectに失敗して落ちてしまうのですが、原因が分からなくて困っています。 長くてすみません、よろしくお願いしますm(_ _)m
727 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 14:43:13 ] string型やchar型の変数をint型にキャストするのって どうやるの?
728 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 14:44:16 ] >>727 何の言語だよ
729 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:01:04 ] 型指定すればどうにでも自由にキャストできるだろ
730 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:04:12 ] まぁキャストだけならどうにでもなるな。 >>727 だと激しく誤った使い方をしそうだが...まぁそれも勉強か。
731 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:21:28 ] >>607 SOCKNAMEをフルパスにしてみるとか connect失敗時のerrnoを見れば何か原因がわかるんじゃないか
732 名前:デフォルトの名無しさん [2007/10/18(木) 15:49:24 ] >>727 string s; は int x = (int) s; char c; は int y = (int) c; だよ〜。がんばってね〜。
733 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:53:51 ] >>727 俺はC++しか知らないから答えられるのはC++の場合だけだ さらにキャストではなく変換とすればint型のiに対して boost::lexical_cast<std::string(i)を使えばstd::string型になる どうだ便利だろ?お前が他の言語使ってるなら是非c++に以降するべきだ
734 名前:デフォルトの名無しさん [2007/10/18(木) 15:57:28 ] x[i+1]=0.5x(i)+1をx[1]=10を初期値としてx[100]まで求めなさい。 これのやりかたを教えてください。
735 名前:607 mailto:sage [2007/10/18(木) 16:05:49 ] >>731 SOCKNAMEのフルパスは/tmp/udsockにしてみただけでは駄目だったのですが、 client.ccのconnectしている直後に perror("connect"); を入れて、PHPでエラー出力を拾うために system( "./client.cgi >& error.out" ); として確認したところ connect: Permission denied となっていて ソケットの許可権を調べてみたら ls -ltr /tmp total 0 srwxrwxr-x 1 hoge hoge 0 2007-10-18 15:43 udsock となっていたので、chmod 777 /tmp/udsock したらうまく動きました〜〜〜\(-o-)/ 一週間近く他の仕事しながらなんで動かないのか悩み続けていた疑問が解決できました。 ありがとうございました!!
736 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 16:09:11 ] >>734 宿題は宿題スレへGO
737 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 16:39:43 ] 初めてwindows環境でコーディング作業をすることになりました。 そこでVISUAL STUDIO 2005のアカデミック版を買ったのですが、 このエディタにオートコンプリート機能はないのでしょうか? さらに予約語のハイライトも変更したいのですが,どうすればいいのか検討もつきません。 どなたかよろしくお願いします。
738 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 16:59:43 ] >>737 とりあえず裸で表へ出ろ
739 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 17:00:54 ] そんな貴方にNTEmacs☆
740 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 17:01:08 ] ハイライトの変更なら「ツール」-「オプション」辺りにないかい?
741 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 17:03:31 ] >>737 何の言語だよ