Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung C und C++

GELÖST

C Programmierung, Probleme mit Datei öffnen

Mitglied: sblaesing

sblaesing (Level 1) - Jetzt verbinden

06.11.2012, aktualisiert 16:44 Uhr, 3173 Aufrufe, 6 Kommentare

Hallo,

ich habe ein Problem, ich habe die Funktion Datei():
01.
int Datei() 
02.
03.
	char POCDatenZeile[256]; 
04.
 	char FMSDatenZeile[256]; 
05.
	char line[2560]; 
06.
	unsigned result; 
07.
 
08.
 FILE *fd; 
09.
   char *datei = "testdatei.txt"; 
10.
   int nRet; 
11.
   size_t *t = malloc(0); 
12.
 
13.
   char **gptr = malloc(sizeof(char*)); 
14.
   *gptr = NULL; 
15.
 
16.
   if ( (fd = fopen(datei,"r+")) == NULL) { 
17.
      fprintf(stderr, "\nKonnte Datei %s nicht öffnen!", datei); 
18.
      return 0; 
19.
20.
 
21.
// Datei Zeilenweise auslesen: 
22.
  while( (nRet=getline(gptr, t, fd)) > 0) 
23.
24.
	 
25.
		// Abfrage DatenSatzart, momentan FMS und POC      
26.
		if(strstr(*gptr, "FMSTlg")) 
27.
28.
				printf("\nFMS upload!");	 
29.
				strcpy(FMSDatenZeile, *gptr);	 
30.
				//result = replace_character(FMSDatenZeile, '\t', '_'); 
31.
				//printf("\nFMS ----%s----", FMSDatenZeile); 
32.
				upload(FMSDatenZeile); 
33.
			}  
34.
		else if (strstr(*gptr, "POC")) 
35.
36.
 
37.
			//-------------POCSAG auswerten------------------------ 
38.
 
39.
// Rohdaten-Upload 
40.
 
41.
				printf("\nPOC upload!");	 
42.
				strcpy(POCDatenZeile, *gptr);	 
43.
				//result = replace_character(POCDatenZeile, '\t', '_'); 
44.
				//result = replace_character(POCDatenZeile, ' ', '-'); 
45.
				//printf("\nPOC ----%s----", POCDatenZeile); 
46.
				upload(POCDatenZeile); 
47.
 
48.
 
49.
			} // Ende der Abfrage auf POC - else if 
50.
		 
51.
 
52.
		//-------------ENDE: POCSAG auswerten------------------------ 
53.
 
54.
		else // Falls nicht POC oder FMS 
55.
56.
				//printf("\n\n Nicht erkannter DatenSatz in Alarm-Datei"); 
57.
58.
		 
59.
	}  // Ende der Schleife über das Zeilenweise Auslesen 
60.
fclose(fd); 
61.
return 1; 
62.
 
63.
}
Das funktioniert auch alles wunderbar.
Ich muss allerdings nochmals eine Datei öffnen in der Funktion ReadConfig:

01.
int ReadConfig() 
02.
03.
 
04.
 FILE* f; 
05.
  char line[256]; 
06.
 
07.
  f = fopen("config.txt", "r"); 
08.
  while(fgets(line, 256, f)) 
09.
10.
    // do sth 
11.
12.
  fclose(f); 
13.
  return 1; 
14.
 
15.
}
Das Programm stürzt ab sobald ich die Finktion aufrufe. Habe viel und lange probiert, es ändert sich aber nichts.

Habt ihr eine Idee?

Danke!
Mitglied: Alchimedes
06.11.2012 um 21:05 Uhr
Hallo,

Auf was fuer einen Betriebssystem entwickelst Du?

Was sagt der Compiler ?

Was nutzt Du? wenn gcc dann mit der Option -Wall , ansonsten haben die ide's in der Regel einen
Debugger dabei.

09 {

10. // do sth

11.}

und ne while schleife ohne Kommando....nur mit Kommentar?

Gruss
Bitte warten ..
Mitglied: Biber
06.11.2012 um 21:38 Uhr
Moin sblaesing,

ändert sich das Programmverhalten, wenn du die Zeile 4 im zweiten Schnipsel änderst?

Streiche: FILE* f;

Setze: FILE *f;

Grüße
Biber
Bitte warten ..
Mitglied: rubberman
06.11.2012, aktualisiert 07.11.2012
Hallo sblaesing,

etwas Fehlerbehandlung vielleicht?
01.
  f = fopen("config.txt", "r"); 
02.
  if (f==NULL) 
03.
04.
    puts("Mist"); 
05.
    return 1; 
06.
  }
Wie sieht denn dein
// do sth
in der Realität aus?

Grüße
rubberman
Bitte warten ..
Mitglied: sblaesing
07.11.2012 um 09:01 Uhr
Hallo,

vielen Dank für die vielen Antworten.
Ich entwickle mit Pelles C unter und für Windows.

Der Compiler sagt nur:
main.c(48): warning #2018: Undeclared function 'ReadConfig'; assuming 'extern' returning 'int'.
warning #2117: Old-style function definition for 'Datei'.
warning #2018: Undeclared function 'getline'; assuming 'extern' returning 'int'.
warning #2114: Local 'result' is not referenced.
: warning #2114: Local 'line' is not referenced.

Die Schleife mit "//do sth" habe ich aus dem Internet mal zum Testen rein kopiert - funktioniert damit aber auch nicht.

Der Fehler (Programmabsturz) tritt auf, wenn ich das hier ausführe: Zeile 22: while( (nRet=getline(gptr, t, fd)) > 0).

Die Ironie an der Sache, in einem anderen Programm, das im Prinzip dasselbe macht, läuft es einwandfrei durch.
Bitte warten ..
Mitglied: sblaesing
07.11.2012 um 09:52 Uhr
Zitat von Biber:
Moin sblaesing,

ändert sich das Programmverhalten, wenn du die Zeile 4 im zweiten Schnipsel änderst?

Streiche: FILE* f;

Setze: FILE *f;

Grüße
Biber

nein, leider der selbe Effekt...
Bitte warten ..
Mitglied: sblaesing
07.11.2012 um 10:58 Uhr
Hallo,

nochmals vielen Dank für die Antworten. Ich vermute das "getline" war das Problem, oder ich habe mich mit irgendwelchen Pointern "verzettelt".
Ich habe das ganze jetzt auf "fgets()" umgestellt. Funktioniert einwandfrei!

01.
int Datei() 
02.
03.
	char POCDatenZeile[256]; 
04.
	char FMSDatenZeile[256];   
05.
	char puffer[ZEILENLAENGE]; 
06.
	char DateiName[20]; 
07.
 
08.
	FILE *quelle; 
09.
 
10.
	strcpy(DateiName,"testdatei.txt"); 
11.
 
12.
	if( (quelle=fopen(DateiName,"r")) == NULL)  
13.
14.
			fprintf(stderr, "Kann %s nicht oeffnen\n", DateiName); 
15.
			return 0; 
16.
17.
	 
18.
	while(fgets(puffer, ZEILENLAENGE, quelle)) 
19.
20.
		if(strstr(puffer, "FMSTlg")) 
21.
22.
			printf("\nFMS upload!");	 
23.
			strcpy(FMSDatenZeile, puffer);	 
24.
			replace_character(FMSDatenZeile, '\t', '_'); 
25.
			//printf("\nFMS ----%s----", FMSDatenZeile); 
26.
			upload(FMSDatenZeile); 
27.
28.
		else if(strstr(puffer, "POC")) 
29.
30.
			printf("\nPOC upload!");	 
31.
			strcpy(POCDatenZeile, puffer);	 
32.
			replace_character(POCDatenZeile, '\t', '_'); 
33.
			replace_character(POCDatenZeile, ' ', '-'); 
34.
			//printf("\nPOC ----%s----", POCDatenZeile); 
35.
			upload(POCDatenZeile); 
36.
37.
38.
return 1; 
39.
}
Byebye,
Sebastian
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Anfängerfrage zu INI-Dateien bei der Programmierung
gelöst Frage von Freund.der.NachtVisual Studio6 Kommentare

Guten Tag an alle! Ich habe in VB.Net ein Programm geschrieben. Da dieses Programm auch Einstellungen speichern muss, legt ...

Microsoft Office
Probleme beim Öffnen einer Excel Datei
gelöst Frage von Ralf13Microsoft Office7 Kommentare

Beim Öffnen einer sehr großen Excel-Datei bekomme ich die Fehlermeldung "Die Datei konnte nicht vollständig geladen werden, da die ...

Java
Probleme beim öffnen von .jnlp-Datei
gelöst Frage von Thomas91Java5 Kommentare

Hallo zusammen, ich bekomme eine Fehlermeldung beim starten eines Programms welches mit Java programmiert ist. Wir sind nur Endanwender ...

C und C++
C-Sharp - Grundlagen zur Programmierung wartbarer Software
gelöst Frage von mabue88C und C++5 Kommentare

Hallo, ich soll eine Software in C# schreiben. Grundsätzlich kein Problem. In einer Besprechung fielen Begriffe wie Business Model ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...