先週から派遣社員として、モバイルのサイトの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で文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
フォームで入力した値を表示し...
-
Application.ScreenUpdating = ...
-
ACCESS テキストボックスを隙...
-
構造体の各データの表示につい...
-
文字の横にプルダウンを表示さ...
-
回数を指定しないで空白行まで...
-
[python] 文字列を変数名として...
-
16進の10進変換について
-
セレクトボックスである項目を...
-
swift 文字コードから文字に変...
-
セレクトメニューで2つの項目...
-
C言語について
-
Use of uninitialized value ---
-
セレクトメニューで選んだ値を...
-
formで特定のinputを送信しない...
-
I2C接続のLCDディスプレイを使う
-
C言語のflagの使い方が分かりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
map(STL)でinsertを行いたいで...
-
リロード後にプルダウンの選択...
-
フォームで入力した値を表示し...
-
Perlでアルファベットを数...
-
linq で 楽天ウェブサービスのX...
-
入力内容のチェック・・・『ま...
-
途中まで出来ているのですが‥(D...
-
CGI(Perl)で、Net::FTPを使いたい
-
前のページへ戻ったときのプル...
-
パターンマッチで変数でマッチ...
-
セレクトボックスについて
-
CGIやPHPで外部ファイルの内容...
-
デコードできない時があります><
-
Application.ScreenUpdating = ...
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
Pythonでターミナルに文字を出...
おすすめ情報