[C] variablen in C an Funktionen uebergeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

[C] variablen in C an Funktionen uebergeben

Beitrag von blackm » 15.07.2006 22:19:32

Hi,

ich versuche mich gerade an einem C Programm das ich in ein Debian Paket verpacken will. Leider komiliert es unter SID nicht:

Code: Alles auswählen

sql.c: In function '_pgsql_exec':
sql.c:283: error: 'settings' undeclared (first use in this function)
Der entsprechende Code sieht so aus:

Code: Alles auswählen

static int _pgsql_exec(void *conn, const char *cmd, char *value, size_t size,
		       size_t *value_len, const sasl_utils_t *utils)
{
    PGresult *result;
    int row_count;
    ExecStatusType status;
    
    /* run the query */
    result = PQexec(conn, cmd);
    
    /* check the status */
    status = PQresultStatus(result);
    if (status == PGRES_COMMAND_OK) {
	/* no results (BEGIN, COMMIT, DELETE, INSERT, UPDATE) */
	PQclear(result);
	return 0;
    }
    else if (status != PGRES_TUPLES_OK) {
	/* error */
	if (settings->sql_verbose)
		utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %s ",
			   PQresStatus(status));
	PQclear(result);
	return -1;
    }
Der (array?) settings sollte nun in in der Funktion importiert werden. Leider habe ich von C keine Ahnung...kann jemand vielleicht die entsprechende Funktion nennen?

bye, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

daedalus
Beiträge: 286
Registriert: 04.02.2005 17:06:16

Beitrag von daedalus » 15.07.2006 22:40:27

Geht das *nur* unter SID nicht? Sonst würde ich nämlich sagen, dess settings schlicht und ergreifend in dem Kontext nicht deklatiert ist (vielleicht in einem namespace?)


EDIT
Err... ich verstehe glaube ich nicht ganz... Du meinst jetzt nicht, wie der Funktionskopf aussehen muss, oder?
Zuletzt geändert von daedalus am 15.07.2006 22:43:13, insgesamt 1-mal geändert.
Das Problem ist der Parser. Der ist nicht fuzzy genug.
--Klaus Knopper

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 15.07.2006 22:42:03

Dein "settings" ist eine Structure auf welche du mit dem Pfeiloperator zugreifst d.h. der Pointer auf die Structure wird dereferenziert und anschließend auf den Member "sql_verbose" zugegriffen.

Auf die Nase fällst du weil nirgendwo die Structure "settings" deklariert bzw. definiert ist - mehr kann ich mit den kleinen code snippet nicht sagen. Sieh einfach nach ob irgendwo bei deinem Code eine Definition für die Structure existiert - das muss Sie zumindest - evtl. hast du nur vergessen ein Header File einzubinden.

markus

Benutzeravatar
npi
Beiträge: 567
Registriert: 03.08.2003 17:52:10

Beitrag von npi » 15.07.2006 22:44:49

Hi,
deine Fehlermeldung sagt im Prinzip nur, dass die Variable settings nicht deklariert ist.
Du musst sie also entweder in der Funktion deklarieren oder (wahrscheinlicher) den Header mit der Deklaration importieren. Dazu musst du die Datei ausfindig machen in der settings deklariert wird und dann per

Code: Alles auswählen

#include <datei.h> 
importieren.

gruß,
npi
Zuletzt geändert von npi am 16.07.2006 23:02:25, insgesamt 1-mal geändert.
"Bis zur Unendlichkeit, und noch viel weiter!"
--Buzz, Toystory

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 16.07.2006 11:52:17

Also das settings Teil wird in der Datei erzeigt, ein include wuerde mich da nicht weiter bringen.
Wie ich die Sache bis jetzt sehe muss ich die Sache einfach nur in den Funktionskopf aufnehmen....ich werd mal in den naechsten Tagen ein bischen weiterhacken...

Falls es geht oder nicht gehr meld ich mich.

bye, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Antworten