![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?8acaa2e)
先週から派遣社員として、モバイルのサイトのCGIをC言語(GLib)で作成する仕事についたのですが、2年前までVBを中心とした開発しかやったことがなく、今回2年ぶりに現場復帰したばかりです。いまいち以下のことが理解できないのです。
1、値の引渡しの方法がわからない。単なプログラムすらもかけない
2、コンテキストがよくわからない
3、ハッシュテーブルとリスト型に変換
4、大まかな流れがわかっていないのかもしれません。
こんなお馬鹿な質問しかできませんが、お勧めのサイトか簡単なサンプルプログラムとかいただけたら幸いです。
No.1ベストアンサー
- 回答日時:
> 1、値の引渡しの方法がわからない
何と何との間の値の引渡しなのでしょう?
携帯とCGI の間というのであれば、携帯に出力する
HTML の中で
<form action="hogehoge.cgi" method="post">
<input type="hidden" name="var_name" value="var_value">
</form>
のように form を作成し、
C 言語の CGI の方で、標準入力から
int length = atoi( getenv("CONTENT_LENGTH") );
char* buf = (char*)malloc(sizeof(char)*(length+1));
int n = fread( buf, 1, length, stdin );
buf[n] = '\0';
よみとれば buf に var_name=var_value という形式で
値を引き渡すことができます。
form の mathod に get を使った場合
int main( int argc, char* argv[] )
の argv に入るということもあります。
> 2、コンテキストがよくわからない
何の「コンテキスト」なんでしょう?
http://ew.hitachi-system.co.jp/w/E382B3E383B3E38 …
の意味で解釈しましたけど、いきなり
2、文脈がよくわからない
って言われてもですね・・・、何の文脈が分からないんですか?
> 3、ハッシュテーブルとリスト型に変換
何をハッシュやリストに変換するのでしょう?
仮に携帯からの送られてくるデータをハッシュに
変換するのであれば、
char sz_key[] = "var_name";
char sz_value[] = "var_value";
GHashTable* hash_table = g_hash_table_new(NULL, NULL);
g_hash_table_insert(hash_table, sz_key, sz_value);
いったん、文字列型(char[]) に格納してから
g_hash_table_insert にてハッシュに挿入すればいいです。
> 4、大まかな流れがわかっていないのかもしれません。
1. FORM から送られてくるデータを受け取る
2. そのデータを元に、なんなからの処理をする
3. 結果を HTML として出力する
以上が大まかな流れです。
一番小さい C 言語による CGI プログラムは
#include<stdio.h>
int main(void)
{
printf("Content-type: text/html\n\n");
printf("<html><body>Hello CGI by C.</body></html>");
}
はい。ここからがんばってください。
------
え~、VB という言語は、ポインターという概念が
表面に出てこない言語なので、C で CGI を作成する
ことを考えた場合、プログラム完全初心者と思われた方が
よろしいかと思います。
正直に申しまして、上記のような質問をしている段階で
あるならば、かなり真剣に勉強しないと開発は出来ない
と思います。
google で C言語 CGI とキーワードと入力すると
いくつもWeb ページがヒットしました。
よさげなページをピックアップしましたので
それらの解説ページをよく読み、本屋で C 言語による
CGI 作成の本を購入されよく読み、勉強してください。
http://www2k.biglobe.ne.jp/~motoi/cdecgi02.html
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPIN …
http://www.din.or.jp/~raelian/cgi_formiddle.html
http://mewc.to/CGI/howto/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 派遣社員・契約社員 派遣 更新するか辞めるか悩んでいます 4 2023/05/21 19:11
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 事故 派遣で工場でのバイト中けがをしました。労災方法と賃金の請求方法教えてください。 4 2022/12/15 00:07
- 楽器・演奏 ★ピアノで曲が弾けるようになるには?等の質問に対する回答について 7 2022/04/08 05:51
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- その他(ビジネス・キャリア) グーグルの障害者訓練プログラム募集あるがどうだろ?6時間勤務で月収22万!! 1 2023/02/17 20:36
- 派遣社員・契約社員 派遣先が続くかわからない。 先週から派遣社員で新しい職場で働き始めたのですが、仕事内容が難しく、空気 2 2023/08/10 07:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
CGIは初心者です。よろしくお願...
-
Application.ScreenUpdating = ...
-
int(input("○○"))の使い方
-
PerlでXMLを解析して出力する。
-
PICで世界時計を作りたいのですが
-
整数でないとき
-
CGI メールフォームからBCCのア...
-
CGI初心者です
-
1つのプログラム内で"html出力...
-
確認画面に空白がでます
-
optionのselectedは更新時は効...
-
perlがうごきません
-
awkの正規表現での最左最短マッ...
-
javaのパッケージ構成で各パッ...
-
実行時エラー 3020の対策
-
前日の日付取得するには?
-
フォーム選択後のリンクを作る方法
-
Use of uninitialized value ---
-
メール送信のFromアドレスについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
フォームで入力した値を表示し...
-
Perlでアルファベットを数...
-
Perl/CGIでスロットマシンを作...
-
【C#】数値の範囲チェックについて
-
途中まで出来ているのですが‥(D...
-
map(STL)でinsertを行いたいで...
-
リロード後にプルダウンの選択...
-
パターンマッチで変数でマッチ...
-
cout, 小数点以下2桁を表示す...
-
半角スペースが有効にならない。
-
Excel VBAで行追加後の...
-
ラズパイで感圧センサーを動か...
-
複数行URLエンコードができるCG...
-
アンケートフォームのvalueの値...
-
linq で 楽天ウェブサービスのX...
-
デコードできない時があります><
-
このCGIサブルーチンを解説して...
-
CGIからメールに書き出しする際...
おすすめ情報