0

私は次のような構造

typedef struct 
{

    char *ptr;

    size_t used;
    size_t size;

} buffer;

typedef struct 
{

    buffer *request;
    buffer *uri;

    buffer *orig_uri;

    http_method_t  http_method;
    http_version_t http_version;

    buffer *request_line;

    /* strings to the header */
    buffer *http_host; /* not alloced */
    const char   *http_range;
    const char   *http_content_type;
    const char   *http_if_modified_since;
    const char   *http_if_none_match;

    array  *headers;

    /* CONTENT */
    size_t content_length; /* returned by strtoul() */

    /* internal representation */
    int     accept_encoding;

    /* internal */
    buffer *pathinfo;
} request;

ここで、構造体「request」に属するメンバー「http_host」の値を (テキスト ファイルに) 書き込みたいとします。メンバ「http_host」は実際には「バッファ」タイプですが、どのように記述すればよいですか? 構文で親切に説明してください。

4

2 に答える 2

2

関連するすべての構造を割り当てて初期化したと仮定すると、次のことができます。

request * req = malloc(sizeof(request));
buffer * buf = malloc(sizeof(buffer));
/* initialize buffer */
.......................
req->http_host = buf;
FILE * fp = fopen("file");
fprintf(fp,"ptr %s\n", req->http_host->ptr);
fprintf (fp,"size %d\n", req->http_host->size);
fprintf (fp,"used %d\n", req->http_host->used);

何か他のことを知りたい場合 (つまり、私があなたの質問を誤解している場合は、質問を詳しく説明してください)

于 2012-04-05T10:30:58.590 に答える
0

このようなことを試しましたか?

// open the file
FILE *fp = fopen("myfile.txt");

// print
fprintf(fp, "%s\n", http_host->ptr);

// close the file
fclose(fp);
于 2012-04-05T10:31:54.197 に答える