> printf("Content/type: 'text/html' \n\n");
> printf("<html> \n");
> printf("<head> \n");
> printf("<meta HTTP/EQUIV='Content/Type' CONTENT='text/html'> \n");
> printf("<title>테스트</title> \n");
>
> printf("</head> \n");
> printf("<body bgcolor=yellow>\n");
printf ("Content/type: text/html\n\n");
printf ("<HTML> \n");
printf ("<HEAD> \n");
printf ("<meta HTTP/EQUIV='Content/Type' CONTENT='text/html'> \n\n");
printf ("<title>테스트</title> \n");
printf ("</HEAD> \n");
printf ("<body bgcolor=yellow>\n");
이렇게 정의를 해 주시면 될 것입니다.
참고로 저가 수정해 본 소스를 아래 적어 봅니다.
====================================================#include <stdio.h>
#include "libpq/fe.h"
void
exit_nicely (PGconn * conn)
{
PQfinish (conn);
exit (1);
}
main ()
{
char *pghost, *pgport, *pgoptions, *pgtty;
char *dbName;
int nFields;
int i, j;
/* File *debug; */
PGconn *conn;
PGresult *res;
/*
* begin, by setting the parameters for a backend connection if the
* parameters are null, then the system will try to use reasonable
* defaults by looking up environment variables or, failing than,
* using hardwired constants
*/
pghost = NULL; /* host name of the backend server */
pgport = NULL; /* port of the backend server */
pgoptions = NULL; /* special options to start up the backend server */
pgtty = NULL; /* debugging tty for the backend server */
dbName = "test";
/* make a connection to the database */
conn = PQsetdb (pghost, pgport, pgoptions, pgtty, dbName);
/*
* check to see that the backend connection was successfully made */
if (PQstatus (conn) == CONNECTION_BAD)
{
fprintf (stderr, "Connection to database '%s' failed.\n", dbName);
fprintf (stderr, "%s", PQerrorMessage (conn));
exit_nicely (conn);
}
/* debug = fopen("/tmp/trace.out", ""); */
/* PQtrace(conn, debug); */
/* start a transaction block */
res = PQexec (conn, "BEGIN");
if (PQresultStatus (res) != PGRES_COMMAND_OK)
{
fprintf (stderr, "BEGIN command failed\n");
PQclear (res);
exit_nicely (conn);
}
/*
* should PQclear PGresult it is no longer needed to avoid memory lear
k
*/
PQclear (res);
/*
* fetch instances from the pg_database, the system catalog of databas
es
*/
res = PQexec (conn, "DECLARE mycursor CURSOR FOR select * from ifmx");
if (PQresultStatus (res) != PGRES_COMMAND_OK)
{
fprintf (stderr, "DECLARE CURSOR command failed\n");
PQclear (res);
exit_nicely (conn);
}
PQclear (res);
res = PQexec (conn, "FETCH ALL in mycursor");
if (PQresultStatus (res) != PGRES_TUPLES_OK)
{
fprintf (stderr, "FETCH ALL command didn't return tuples properly\n
");
PQclear (res);
exit_nicely (conn);
}
printf ("Content/type: text/html\n\n");
printf ("<HTML> \n");
printf ("<HEAD> \n");
printf ("<meta HTTP/EQUIV='Content/Type' CONTENT='text/html'> \n\n");
printf ("<title>테스트</title> \n");
printf ("</HEAD> \n");
printf ("<body bgcolor=yellow>\n");
/* first, print out the attribute names */
nFields = PQnfields (res);
for (i = 0; i < nFields; i++)
{
printf ("%/15s", PQfname (res, i));
}
printf ("\n\n");
/* next, print out the instances */
for (i = 0; i < PQntuples (res); i++)
{
for (j = 0; j < nFields; j++)
printf ("%/15s", PQgetvalue (res, i, j));
printf ("\n");
}
PQclear (res);
printf ("</body>\n");
printf ("</html>\n");
/* close the cursor */
res = PQexec (conn, "CLOSE mycursor");
PQclear (res);
/* commit the traction */
res = PQexec (conn, "COMMIT");
PQclear (res);
/* close the connection to the database and cleanup */
PQfinish (conn);
/* fclose(debug); */
}
|