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


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

C言語なら俺に聞け(入門編)Part 63



1 名前:デフォルトの名無しさん [2010/04/10(土) 23:30:23 BE:454421186-S★(520172)]
C言語の*入門者*向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 62
pc12.2ch.net/test/read.cgi/tech/1269517734/
★過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★初心者、初級者の方は他の質問スレのほうが良いかもしれません。
例えば
【初心者歓迎】C/C++室 Ver.72【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1267775473/
とか
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 135代目
pc12.2ch.net/test/read.cgi/tech/1269438098/
★C++言語についてはなるべく聞かないでください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

2 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 00:41:48 ]
2

3 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 01:37:57 ]
さてvoid main認容問題から再開しようか

4 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 01:42:16 ]
void main にすべきと言わなきゃ別にOK

5 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 03:32:21 ]
int mainの戻り値って具体的には何に使われてるの?
コマンドプロンプトやシェルスクリプトが利用するってのは聞いたことがあるんだけど、
それを利用して何を処理してんの?

6 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 03:42:50 ]
>>5
具体的な例で言うと、testコマンドなんかは
条件を満たしたときの戻り値が0、満たさなかったときの戻り値が0以外だな。

あと、変り種なコマンドとして、 : というのもある。
これは何をするのかというと、何もせず、戻り値として0を返すコマンドだ。

7 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 03:48:11 ]
>>5
プログラムが成功したか失敗したかを判断するのに使う
プログラムが動作失敗したらもうそれ以上処理を続行したくないとき
などで見るのが一般的な使い方になる

Linuxのデーモン起動スクリプトなどはこれを積極的に利用してて
プログラムが正常に終了しなかったときに処理を停止する機能を
先頭で有効にしていたりする。(set -e)

8 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 03:50:39 ]
>>6-7
分かりやすくありがとう

9 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 06:04:23 ]
なぜ long main(...)とか float main( ... )とかdouble main( .... )って
駄目なんだ?

10 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 08:37:10 ]
なぜお釣りが好きなのか?



11 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 12:29:22 ]
>>9
別にダメじゃないだろ
定義されていないだけで

12 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 12:39:17 ]
>>9
多分起動元で値がとれない。

13 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 14:39:55 ]
>>9
それをintと置き換える意味がほとんどないからです。

14 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/04/11(日) 15:20:37 ]
>>9 そういう風に main() の呼び出し元や、めぐってはプロセス起動元がつくられていないから。
void と int が交換可能なのは、たまたま大概の処理系がそうなっているからだけのこと。

15 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 15:25:00 ]
>>14
一応訂正しとくけど、voidとintは交換可能ではないよ。
一般的なOSでは戻り値にintを期待してて、voidでは値が返却されず不定になってるけど
呼び出し元がたまたま戻り値を利用しないから問題にならないだけで。

16 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 15:29:44 ]
戻り値を利用するときに困るけどね
make で使おうと思ったら勝手に止まったり

17 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 15:33:43 ]
>>15
不定にならない処理系もある。M$ とか。

18 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 16:09:02 ]
>>17
それはコンパイラの親心機能だな。

19 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 16:42:21 ]
さあね

20 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/04/11(日) 17:20:07 ]
>>10
さすがにこのネタも古くなり、以前のようには釣れなくなってきました。



21 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 17:38:52 ]
>>20
釣り方に品が無い。
そもそもintってなんだよw、とか8bit時代はどうしてたんだよw、とか
今までとは違う方向へ話が広がるように釣ってくれないと。

22 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 18:48:59 ]
codepad.org/nyYJwZTX

SSE を使うときに便利な構造体。
同じ128ビット内の内容を、byteやfloatやx,y,z,wで指せて便利。
asm("movaqu %0,%%xmm1;":"+m"(xmm));って風にそのままインラインアセンブラにも渡せて簡単。(ニモニックうろおぼえ)
配列にして渡せば、そのままパイプでだーーっと一度に計算できてたぶん速い。たぶん。
…いや、べつに。…なんとなく。


23 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:08:28 ]
>>22
wって何に使うの?

24 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:09:23 ]


25 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:31:38 ]
>>22
共用体を初めて知ったの?

26 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:35:03 ]
レジスタをエミュレートしたりするのにunion使うのは昔からされていること

27 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:50:28 ]
_m128*使えよ
あれ共有体だぞ

28 名前:22 mailto:sage [2010/04/11(日) 20:49:02 ]
>>23
しらね

29 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 21:55:07 ]
REGS共用体とか懐かしい

30 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 23:26:57 ]
8086時代のCか
MSDOSコールを嫌というほど書いた思い出があるな

farポインタとかhugeポインタ死ねよ



31 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 03:30:28 ]
>>30
far ポインタは良く使ったな。huge ポインタはときに seg:off で off が一回りしたときに seg をインクリメントしてくれないことがあるので怖くてちかづかなかった。

32 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 03:49:20 ]
64kもあればどんな事だってできると思ってた・・・
1MのRAMすら広すぎてもてあましてた
8MのRAMなんて高くて手が届かなかった

33 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 07:13:19 ]
・・・

34 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 08:33:35 ]
メモリチェックが長くてうざいと感じたあのころ

35 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 10:25:59 ]
>>31
farポインタの糞仕様に参ってたよ
1MB空間のどこでも指せるのに、そこから64KBしかアクセスできないと来たもんだ
巨大配列はhuge配列にするしかなかった
しかもものすごく遅いし

32bitになってフラットモデルと聞いて小躍りしたよ

36 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:15:40 ]
>>35
おまえ凄い勘違いしてるぞ、far はただの修飾子だよ。

37 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:23:23 ]
そうだね、farポインタなら常にセグメントアドレスを使うから64KBを超えてアクセスできるね。
遅いし、64KBを超える配列の場合オブジェクトサイズが2の冪乗に限定されるけど。

38 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:38:08 ]
>>36
far配列の事ではないかと

39 名前:デフォルトの名無しさん [2010/04/12(月) 19:33:27 ]
誰かご存知の方がいらっしゃったら教えて頂きたいのですが…。

HP-UX 11iV2とHP-UX 11iV3 とでfreadの返り値が変わるなんてこと有り得ますかね?

utmpx読み込んで接続元のip割り出してたら、下記while文で無限ループしてしまいました。

while(fread(&u, sizeof(struct utmpx), 1, fp)==1) {

延々と1が帰ってくるはず無いんだが…。
いやね、問題が起きてるの、11iv2なんだけどさ、
再現環境作りたいんだが、手元に11iv3しか無くてションボリ。

ご存知の方いらっしゃいましたら助けてください。


40 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 20:32:58 ]
>39
fread()の戻り値は、読み込んだ要素数だから、この場合、fpのファイルの終端になると1より小さい値を返すと思う、うん

とりあえず、fread()について
HP-UX 11i v2 fread(3S)
docs.hp.com/ja/B2355-91076/fread.3S.html
HP-UX 11i v3 fread(3S)
docs.hp.com/ja/B2355-60129/fread.3S.html
若干変わったみたいだけど、それが原因とは思えない

もう一度、本当にそのwhileで無限ループになっているのか確認した方がいい
また、そのwhileで無限ループになったと判断した理由を教えてもらいたい
差し支えなければ、その行を含む前後のコード、または、コンパイル単位のソースコード、あるいは、そのソフトウェアの全ソースコードを見せてください



41 名前:デフォルトの名無しさん [2010/04/12(月) 21:06:59 ]
>40
せっかく返信くれたのに申し訳ないんだが、全部は見せれない。ごめん。
ip取得でループから抜け出せないのはなんとなく想定できてたんで、現地環境で
if (ut.ut_type!=USER_PROCESS) {の上の行にprintfはさんで、ループしてることを特定、
その後fread(&ut, sizeof(struct utmpx), 1, rp)==1をfread(&ut, sizeof(struct utmpx), 1, rp) != 0
に変更して再コンパイルし、正常稼動を確認。
PIDCheckはutmpxのpidが正しいものかチェックしている関数
うーん、永遠に1が帰ってきてるとも考えづらいんですけど、別の原因だとすると、==1 を!=0にしたことで現象が改善する理由が不思議なんですよ。

42 名前:デフォルトの名無しさん [2010/04/12(月) 21:08:03 ]
int IPGET(int pid, char *IP)
{
FILE *rp;
struct utmpx ut;
rp = fopen(UTMPX_FILE, "rb");
if (fp == NULL) {
return 0;
}
memset(&ut, 0, sizeof(struct utmpx));
while(fread(&ut, sizeof(struct utmpx), 1, rp)==1) {
if (ut.ut_type!=USER_PROCESS) {
memset(&u, 0, sizeof(struct utmpx));
continue;
}
if (PIDCheck(ut.ut_pid) == 1) {
fclose(fp);
strcpy(IP,ut.ut_host);
return 1;
}
memset(&u, 0, sizeof(struct utmpx));
}
fclose(rp);
return 0;
}

43 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 23:03:11 ]
これからC言語を学ぼうと思います。
まず最初に準備するものを教えてください

44 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 23:04:54 ]
ロベール

45 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 23:05:02 ]
この板に二度と来ないという決断

46 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 23:20:02 ]
>41
いろいろな角度から検証してみた、ってか、よくわからなくなってきた
気持ち悪いけど、とりあえず!=0で運用してください
[メモリ破壊](25%)
ぱっと見では、していないようだ
あるとしたら、fread(), fclose(), strcpy()だが、fread()以外はそのすぐ後でreturnしているので、whileの無限ループに関与する可能性は低い
fread()については後述、それにしても、memset()を呼び出す必要はあるのか

[マルチスレッド](0%)
スレッドを使っているかどうか分からないが、広域変数やstaticな変数が無いので関係ない

[fread()==1となる数値](25%)
size_tの宣言がどのようなものか知らないが、例えば
typedef unsigned long size_t;
の場合、fread()==1となるfread()の戻り値は、1以外にも存在する
だたし、sizeof(long)(32bitとか) < sizeof(long long)(64bitとか)とする
例えば、-9223372036854775807がそうだ
size_t s;
s = -9223372036854775807LL;
if ( s == 1 ) { /* true */ }
これで、fread()==1の説明が付くが、fread()!=0を偽にする数値と一致するわけが無い
(s == 1) && (s == 0)なんてことはありえない、『ありえないなんてことは、ありえない』か

[最適化の影響](40%)
アセンブリを出さないと分からないけど、最適化のしすぎで意図しないコードに化けた可能性はある
コンパイラのバグで、unsignedとsignedを論理比較していたとか

[ライブラリのバグ](5%)
fread()にバグがあってどうかなっている

[そもそもIPGET()を複数回呼ぶループがある](5%)
ループ付近の変数で破壊が起きている

47 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 00:13:32 ]
memset(&u, 0, sizeof(struct utmpx));
の u ってなに?

48 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 01:44:31 ]
分からん。
rpとfpの違いも分からん

49 名前:デフォルトの名無しさん [2010/04/13(火) 08:58:17 ]
>46
ありがとうございます!助かります。
読ませていただいた感じ、[fread()==1となる数値](25%)
が該当するかも、という気がします。
とは言うのも、64bit pa-riscなんですよ。cpuが。

ちょっと見方を変えて、環境に依存してる問題で何か原因が無いか考えて見ます。
現地環境で返り値見れれば早いんですけどね…。

>47
すみません、それ、utです。
fpはrp。さすがにそのまんま乗せるのはちょっと問題あると思ったんで
変数名や関数名ところどころ変えました。
事情は察してください。



50 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 09:01:57 ]
>>39
あれこれ想像せず、読み込んだ内容を表示するとかして確認すれば?



51 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 11:51:46 ]
俺の勘だと、実際のソースではmemsetあたりでopenしなおしてるのが原因

52 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:17:56 ]
この板自演しやすくていいな

53 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:24:37 ]
>>49
そういう不可思議な現象は99%コード領域が書きかえられてることが原因だよ
どっかの馬鹿がヘマして未初期化のポインタ使って何か書き込んでる

54 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 18:40:52 ]
>>53
それリタイヤ寸前のプログラマの発想だよ

55 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 21:35:49 ]
main.cpp:3: error: ‘::main’ must return ‘int’
なんで、mainの戻り値をvoidにすると怒られるの?
コンパイラはgcc-4.3.4

56 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 21:39:20 ]
gccの仕様

57 名前:55 mailto:sage [2010/04/13(火) 21:40:38 ]
>>56
それじゃ、文法的には問題ないの?

58 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 21:55:15 ]
もちろん

59 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 21:58:54 ]
>>55
処理系依存。処理系が int main() 前提だったらそのように書くしかない。
main() といえども、スタートアップの呼び出しの前提には逆らえない。

60 名前:55 mailto:sage [2010/04/13(火) 22:35:29 ]
>>58-59
thx



61 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 22:40:25 ]
今日マイコンの本立ち読みしたんだがアセンブリで書かなくちゃいけないところもあるらしいな
その本ちょっと欲しかったんだが値段が高くて手か出なかった

62 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 01:29:13 ]
>>55 (>>56-59)
C++ の仕様。 void にしたかったら main.c にしてみれば?

63 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 01:45:40 ]
>>62
C++でもvoid main()はありうる。
ありうるだけだけど。

64 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 02:03:12 ]
>>63
ないよ。

ISO C++ 3.6.1 p2
> This function shall not be overloaded. It shall have a return type of
> type int, but otherwise its type is implementation-defined.

www.kijineko.co.jp/tech/superstitions/void-main.html
> 一方、標準C++では、main の返却値の型は int でなければならないことが
> 明記されていますので、・・・

www.parashift.com/c++-faq-lite/newbie.html#faq-29.3
> main() must return int. Not void, not bool, not float. int. Just int,
> nothing but int, only int.

65 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 05:15:08 ]
>>64
C++にもfreestanding環境があったと思うが。



66 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 05:50:04 ]
C++はスレチ

67 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 08:20:23 ]
>>64
ISO C++では、otherwise its type is implementation-defined
と int でない可能性も含んでいますね。

68 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 08:43:52 ]
>>67
直訳すると
「それ( main 関数)は int の戻り値型を持たなければならない、がそれ以外は型を実装定義とする」
なわけで、この記述では戻り値型が int でない可能性を含んでいない。

69 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 09:01:15 ]
文法的にはありってことでは

70 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 09:30:29 ]
ISO C++ 3.6.1 p2
> This function shall not be overloaded. It shall have a return type of
> type int, but otherwise its type is implementation-defined.

直訳
> この関数は多重定義させることはない。その関数はint型の戻り値を持つことになるだろう、
> しかし、それ以外は、戻り値の型は実装者定義である。

意訳
> この関数は多重定義できない。その関数の戻り値はint型であるが、それ以外は、戻り値の型を実装者定義とする。
それ以外のそれってなんだよと思って、原文見ると
ISO/IEC 14882:2003(E)
3.6.1 Main function
2 An implementation shall not predefine the main function. This function shall not be overloaded. It shall
have a return type of type int, but otherwise its type is implementation-defined.
わぁお、とある実装の話かよ
詰まるところ、別の実装では、main()の戻り値は実装者定義としている

ってか、スレ違い



71 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 09:39:26 ]
そんなおまいらへ。

C/C++の宿題片付けます 135代目
pc12.2ch.net/test/read.cgi/tech/1269438098/l50

ここでなぜか一通り議論されてる。

72 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 10:01:55 ]
>>70
"its type" が「戻り値の型」にねじまがっている。正しくは main の型。

73 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 10:08:00 ]
関数の型は、その戻り値の型と引数の型(と C++ ではもう少しのおまけ)から成る。

74 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 11:12:10 ]
>>72
同じだろ

75 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 12:41:58 ]
int (*)(void) int (*)(int, char**)
に関しては必須で、それ以外は環境依存ということなので、
intにしててだめな事はないんじゃないの

76 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 12:52:15 ]
>>75
馬鹿は黙ってなさい

77 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 13:01:02 ]
じゃあ馬鹿でも分かるようにとっとと結論書いてくれよ

78 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 14:39:02 ]
出てるだろ馬鹿

79 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 18:18:59 ]
C++厨は速やかに以下のスレへ移動してください
当スレにおいてあなたたちは「役立たず」です

C++相談室 part79
pc12.2ch.net/test/read.cgi/tech/1268846738/

C++上級者が集まるスレ
pc12.2ch.net/test/read.cgi/tech/1095113801/

80 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 18:38:57 ]
役立たずに失礼だろ



81 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 18:46:14 ]
俺は役立たずだがC++厨と一緒にされたくはないわ

82 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 19:42:27 ]
>>74
「関数の戻り値の型」と「関数の型」は違うだろ。

83 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 19:54:40 ]
struct timeData{
char second; /* 秒 */
char minute; /* 分 */
char hour; /* 時 */
char weekday; /* 曜日 */
char day; /* 日 */
char month; /* 月 */
char year; /* 年 */
};
static struct timeData time;
とするのと
timeData[7]として配列0?6までそれぞれ秒から年というふうに意味を
与える使い方どっちがいいですかね?あんまり後者のような使い方は
好ましくないのかな?
ちなみに実際時刻をセットする関数getTimeがchar型のポインタになってます。
getTime(&time.second)とするか
getTime(timeData)とするか
これをみると逆に配列にした方がいいのかなって気がします。
(getTime(&time.second)みないに構造体を配列みたいに使ってもいいのか?)

84 名前:あきら [2010/04/14(水) 20:04:15 ]
Winsockを使ってPOST送信したいんですけど
送れません・・・・


strcpy(buf,"POST / HTTP/1.1\r\n");
strcat(buf,"Host: ");
strcat(buf,host);
strcat(buf,"\r\n");
strcat(buf,"Content-Length: 117\r\n");
strcat(buf,"Cookie: 0\r\n");
strcat(buf,"User-Agent: MSIE7.0\r\n");
strcat(buf,"REFERER: aqbb.net/bbs.aqbb.net/form/test?guid=on\r\n");
strcat(buf,"Connection: close\r\n");
strcat(buf,"\r\n");
strcat(buf,"title=ABFA");
strcat(buf,ses);
strcat(buf,"&name=ABFA&mail=a@docomo.ne.jp&comment=ABFA&pass=1234&ses=");
strcat(buf,ses);
strcat(buf,"&cookie=&upfile=&id=test&mode=thread");
strcat(buf,"\r\n");
strcat(buf,"\r\n");

これでレンタルサーバーにアップしてある
PHPで作成した自分の掲示板に投稿しようと
思いましたが送信できていないみたいです。
どうすればいいですか?


85 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:05:55 ]
逆に配列にしたほうがいいのかな、と思った理由がよく分からないや
getTime(&timeData[6]);
getTime(&timeData[0]);
getTime(&time.second);
getTime(&time.year);
getTime(&timeData[TIME_YEAR]);
getTime(&timeData[TIME_SECOND]);

86 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:07:57 ]
>>84
送信できていないのか、送信したが投稿処理がうまくいかなかったのかを切り分ける作業は終わった?

87 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/04/14(水) 20:17:35 ]
>>71
春休みで宿題がなくてひまだったんです。

88 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:18:51 ]
>>82
関数の型は関数の戻り値の型のことだから一緒では?いいかたが違うだけでは?

89 名前:あきら [2010/04/14(水) 20:19:21 ]
>>86
切り分ける作業と言うとどんなのですか?

PHPで
if($_POST["mode"] != 'thread')
{
echo'ERROR!!';
exit();
}

というようにやっています。
sendで送信してからすぐにrecvで受信し
表示させたときにPHP側の
ERROR!!の文字が返ってきました。

90 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:30:03 ]
>>89
パケットがとんでるかどうか見れば良かったんだけど、PHPから返事もらってんだね。
なんでPHP側のログ見ないの?



91 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:31:38 ]
ログ見てもしょうがなかった。
$_POSTの中身見てみたら?

92 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:32:09 ]
>>88
int main(void) という関数 main について、
関数の型は int (void) であり、関数の戻り値の型は int である。

typedef int ReturnType;
typedef ReturnType FunctionType(void);
FunctionType main;

93 名前:あきら [2010/04/14(水) 20:32:49 ]
>>90
PHP側のログ?
レン鯖だからログとか見れないと思う・・・

ちなみに
GETで送信することはできました。
POSTにしたら送れなくなった・・・

94 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:36:21 ]
>>88
type
return type of type
と二つ書かれてるんだからそこを意識しなよって意図が見えませんかね

95 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:40:58 ]
>>93
sesって何桁なの
content lengthあってんのかね

96 名前:あきら [2010/04/14(水) 20:43:30 ]
>>95
5桁です。
titleにも付けてる理由は
タイトル重複規制してるからです。

97 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 20:45:18 ]
CR付けないといけないのは、大変だな

98 名前:デフォルトの名無しさん [2010/04/14(水) 21:04:50 ]
Linux上でCで開発するとき、listやstackやqueueといったデータ構造を提供するライブラリで最もメジャーなものを教えてください。

次の優先順位でお願いします。

(1)ubuntuに標準で入っているもの(glibcには入っていないですよね)
(2)ubuntuのパッケージとして入手可能なもの
(3)最近もメンテされているメジャーなライブラリ(CSTLよりメジャーなものがいいです)

99 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:07:38 ]
>>98
自分で作れ

100 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:39:01 ]
>100
GNOME環境だったら、KDEでも入っていると思うけどGLibとか
GtkでGUIのアプリ作るときに良く使われるから覚えておいて損は無い

CSTLでも別にいいと思うけど、嫌なら自分で作れ、とマジで言いたくなる








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

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

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