[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/26 12:25 / Filesize : 214 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

スレ立てるまでもない質問はここで 85匹目



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 ]




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
何の言語だよ






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

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

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