Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

funktion fclose

Frage Entwicklung C und C++

Mitglied: lowbyte1

lowbyte1 (Level 2) - Jetzt verbinden

15.08.2007, aktualisiert 21:28 Uhr, 3577 Aufrufe, 4 Kommentare

Verstehe nicht das bei der Ausführung des Programms immer ein "read error speicheradresse ? verwaist auf speicheradresse ?" kommt als Popup!
01.
#include <stdio.h> 
02.
int system(); 
03.
int fclose(fp); 
04.
int exit(); 
05.
 
06.
int main() 
07.
08.
	FILE *fp; 
09.
 
10.
	fp = fopen("test.txt", "a+"); 
11.
 
12.
	if(fp = NULL) 
13.
		printf("kann datei nicht eröffnen.\n"); 
14.
	else 
15.
		fclose(fp); 
16.
                                system("test.txt"); 
17.
	return 0; 
18.
 
19.
}
Die "test.txt" - Datei wird schon angelegt ,wenn sie nicht existiert. Doch wird bei der Funktion "fclose" ein Fehler von Windows ausgegeben in einem Popup wie gesagt!
Ich möchte die Datei schließen damit ich sie dann aufrufen kann: Bsp.: system("test.txt");

Aber wo ist der Fehler?
Mitglied: Biber
15.08.2007 um 14:51 Uhr
Moin laubyte1,

ich denke nicht, dass die fclose()-Function in diesem Fall dafür verantwortlich ist.
Das if-else-Konstrukt wird wie geschrieben abgearbeitet, aber nicht wie gedacht.

Ich streu mal ein paar geschweifte Klammern ein.
Und das Filehandle, der Integer-Returnwert von fopen() kann nienicht NULL sein.
Wenn fopen in die Grütze geht, dann wird FALSE zurückgegeben. Zumindest war es die letzten 40 Jahre so..

01.
#include <stdio.h> 
02.
int system(); 
03.
int fclose(fp); 
04.
int exit(); 
05.
 
06.
int main() 
07.
08.
	FILE *fp; 
09.
 
10.
	fp = fopen("test.txt", "a+"); 
11.
 
12.
	if(!fp) { 
13.
		printf("kann datei nicht eröffnen.\n"); 
14.
 
15.
	 } else { 
16.
		fclose(fp); 
17.
                                system("test.txt"); 
18.
19.
	return 0; 
20.
 
21.
}
Gruß
Biber
Bitte warten ..
Mitglied: lowbyte1
15.08.2007 um 19:52 Uhr
danke für deine hilfe
im nachhinein frag ich mich selbst was ich da gemacht habe..
aber danke biber du bist eine klasse für dich !!!
Bitte warten ..
Mitglied: lowbyte1
15.08.2007 um 20:15 Uhr
hallo

noch eine frage

in meinem C buch heisst es da wen die datei nicht geöffnet werden kann,
liefert fopen() den NULL Zeiger !!

stimmt das so.

wäre für jede Professionele antwort dankbar..


es gibt nur eins 0 or 1 [lowbyte]
Bitte warten ..
Mitglied: Biber
15.08.2007 um 21:28 Uhr
Moin lowbyte,

jepp, Dein C-Buch scheint recht zu haben, wie eine nicht-repräsentative Suchmaschinenbefragung zeigt.
Mehrheitlich wird dort geschrieben, dass es entweder einen Pointer auf eine FILE-Struktur zurückgibt oder eben einen NULL-Pointer.
Was ja auch einleuchtend erscheint.
Ist mir selten aufgefallen, weil ich meist keine explizite Prüfung gemacht habe, sondern eher diese Mimik..
01.
#include <stdio.h> 
02.
 
03.
int main(void) 
04.
05.
    char buffer[256]; 
06.
    FILE * handle; 
07.
	 
08.
    handle = fopen("whatever.txt","r"); 
09.
	 
10.
    while (!feof(handle)) 
11.
12.
        fgets(buffer, 256, handle); 
13.
        printf("%s",buffer); 
14.
15.
	 
16.
    fclose(handle); 
17.
     
18.
    return 0; 
19.
}
...wobei es dann eigentlich natürlich (im Nachhinein betrachtet) richtiger gewesen wäre, die Variable "handle" besser "fileptr" zu nennen.
Und noch eigentlicher müsste es dann unten heißen:
01.
.. 
02.
if (handle != NULL) fclose(handle); 
..statt nur einem "fclose(handle);"

Na ja, die Macht der Gewohnheit...
...oder war das "das macht die Gewohnheit.."?? *grübel*

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
LAN, WAN, Wireless
Hat On Networks PL500PS WLAN-Funktion? (4)

Frage von Andy1987 zum Thema LAN, WAN, Wireless ...

iOS
IOS 10.2 bringt SOS-Funktion aufs iPhone

Link von sabines zum Thema iOS ...

JavaScript
If Funktion mit wildcards in google sheets script (3)

Frage von Stoffn zum Thema JavaScript ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...