Ich schreibe etwas in C mit Netbeans 6.9.1 (es ist eine Voraussetzung) und stolperte über einen seltsamen Bug. Wenn ich versuche, diesen Code von Netbeans auszuführen:Netbeans und C, eigentümlicher Bug
#include <stdio.h>
#include <stdlib.h>
#include "company_description.h"
company_description read_company_description() {
char file_name[FILE_NAME_BUFFER_SIZE];
FILE *company_description_file;
company_description cd;
printf("Please enter the name of the file containing the "
"company's description: \n");
scanf("%50s", file_name);
company_description_file = fopen(file_name, "r");
if(company_description_file != NULL) {
printf("file is not null\n");
}
fscanf(company_description_file, "%s%s%s%s%s%s", cd.company_name,
cd.name_file_deliveries_info, cd.name_file_industrial_park,
cd.name_file_places, cd.name_file_roads, cd.name_file_vans_info);
return cd;
}
bekomme ich diese Ausgabe:
Please enter the name of the file containing the company's description:
name_file.txt
Segmentation fault
Press [Enter] to close the terminal ...
Ok sage ich mir, von meinem Standpunkt aus vie es nichts mit diesem Code falsch ist, und ich gehe zu ~/Pfad/zu/NetbeansProject/dist/Debug/GNU-Linux-x86 und versuchen, die ausführbare Datei von dort auszuführen, und es funktioniert. Ich habe vergessen zu erwähnen, dass die Datei, die gelesen werden soll, sich in demselben Ordner befindet, genau wo sich die ausführbare Datei befindet. Jetzt könnte es einen Fehler auf meiner Seite geben, aber ich sehe es nicht, also wären irgendwelche Gedanken dazu hilfreich. Vielen Dank!
Ihr Arbeitsverzeichnis ist wahrscheinlich falsch - wenn Sie von Netbeans ausführen, ist das Arbeitsverzeichnis nicht unbedingt dasselbe wie das, in dem sich die ausführbare Datei befindet. – birryree
@Birrreee, ich denke du hast recht, post als Antwort? –