PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textdatei lässt sich nicht öffnen - SSH-Verbindung/ FTP



Chito
28-05-2008, 19:11
Ich habe folgendes Problem.

Über eine SSH-Verbindung kompiliere ich meine Programme und habe im FTP-Verzeichnis meiner Hochschule das .c - Programm und die dazugehörige .txt - Textdate liegen.

Beim Testen mit fopen( ... ) ... konnte die Textdatei aber nicht geöffnet werden.

Ich meine ... ich möchte lediglich erstmal die Textdatei öffnen, aber genau das scheint nicht zu gehen. Irgendwie weiß ich jetzt auch nicht an was das liegen kann.

Verzeichnis/
textdatei.txt
programm.c

Also ... im selben Verzeichnis vom c-Prog liegt auch die .txt

Hier mal der kleine Code:




#include <stdio.h>

int main(void) {
FILE *in;

// hier die Kommandozeile bearbeiten
in = fopen("textdatei.txt","r");
if(NULL == in) {
printf("Konnte Datei leider nicht öffnen!\n");
return 0;

}
return 0;
}


Ist der Code vllt. doch fehlerhaft?
Ich kann doch nicht zu doof sein ne Textdatei zu öffnen.


Also ... über ne SSH greife ich auf den remote der Hochschule zu ... und starte von da aus das Programm.

:(

ContainerDriver
28-05-2008, 19:32
Hallo,

der Code sollte schon stimmen, poste doch mal ein ls -lh von dem Verzeichnis wo die Datei liegt.

Gruß, Florian

Chito
28-05-2008, 20:34
-rwxr-xr-x 1 std11999 other 6,4K May 28 19:54 a.out
drwxr-xr-x 2 std11999 other 512 May 28 14:43 Demo
-rw-r--r-- 1 std11999 other 940 May 28 14:41 msocket.h
-rw-r--r-- 1 std11999 other 1,8K May 28 12:15 myTypes.h
-rw-r--r-- 1 std11999 other 1,0K May 28 14:41 options.h
-rw-r--r-- 1 std11999 other 6,3K May 28 19:22 pc.c
-rw-r--r-- 1 std11999 other 6,9K May 28 14:41 socket.c
-rw-r--r-- 1 std11999 other 2,3K May 28 18:53 test.c
-rw-r--r-- 1 std11999 other 424 May 28 19:35 test.txt
-rw-r--r-- 1 std11999 other 252 May 28 19:54 test2.c
-rw-r--r-- 1 std11999 other 424 May 28 19:35 testSites.txt
-rwxr-xr-x 1 std11999 other 6,5K May 28 12:21 wc
-rw-r--r-- 1 std11999 other 3,2K May 28 14:23 wc_1.c
-rw-r--r-- 1 std11999 other 6,2K May 28 13:54 wc.c
-rw-r--r-- 1 std11999 other 2,6K May 28 12:21 wc.o


Bitte schön ... also lese-rechte habe ich.

anda_skoa
28-05-2008, 20:37
Und welche dieser Dateien ist das Executable, das aus test.c gebaut wurde?

Ciao,
_

Chito
28-05-2008, 20:57
gcc test.c

danach: a.out


ich arbeite mit unix


also ... ich logge mich über ssh auf nen hochschulrechner ein und führe das programm aus ... da liegt dann auch das textfile im selben verzeichnis.

das zu öffnende file wird vom test.c programm nicht erkannt ??

Berufspenner
28-05-2008, 21:02
gcc test.c

danach: a.out


ich arbeite mit unix


also ... ich logge mich über ssh auf nen hochschulrechner ein und führe das programm aus ... da liegt dann auch das textfile im selben verzeichnis.

das zu öffnende file wird vom test.c programm nicht erkannt ??

Ähm, also vielleicht irre ich mich ja, aber wenn ich nicht ganz falsch liege, dann müsstest du über deinen Output von gcc nochmal nen linker laufen lassen, bevor du wirklich eine ausführbare Datei erhälst ;)

Chito
28-05-2008, 21:05
die ouput datei wird ausgeführt ... mit dem ergebnis auf der Konsole:


if(NULL == in) {
printf("Konnte Datei leider nicht öffnen!\n");
return 0;

}

Ausgabe:


remote std11999/21: a.out
Konnte Datei leider nicht öffnen!
remote std11999/22:

ContainerDriver
28-05-2008, 21:09
Du versuchst eine Datei mit dem Namen textdatei.txt zu öffnen, schau doch mal das Dateilisting vom Verzeichnis an ;)

Chito
28-05-2008, 21:10
#include <stdio.h>

int main(void) {
FILE *in;

// hier die Kommandozeile bearbeiten
in = fopen("test.txt","r");
if(NULL == in) {
printf("Konnte Datei leider nicht öffnen!\n");
return 0;

}
return 0;
}


habe auch schon fopen("/home/verzeichnis/test.txt","r"); probiert ... das geht auch nicht. :(

... dessen bin ich mir bewusst ... die heisst auch test.txt ... wird aber trotzdem nicht geöffnet. ;)

Chito
28-05-2008, 21:13
Ich mache heute Feierabend ... lol ... bin ich doof.

Es geht jetzt:


#include <stdio.h>

int main() {
FILE *in;

// hier die Kommandozeile bearbeiten
in = fopen("test.txt","r");
if(NULL == in) {
printf("Konnte Datei leider nicht öffnen!\n");
return 0;

}
else
{
printf("Datei wurde geöffnet!\n");
return 0;
}
return 0;
}

das konnte so auch nicht gehen:


int main(void) {

jeebee
29-05-2008, 06:16
Also bei mir funktionierts auch mit
int main(void) {

Berufspenner
29-05-2008, 08:58
Also bei mir funktionierts auch mit
int main(void) {
Ich wollts grad sagen. Abgesehen davon, ist diese Formulierung gang und gebe.

Chito
29-05-2008, 08:59
komisch komisch. kann uns das jmd erklären?

Also ich habe für mich das Problem vorerst gelöst. Danke an alle beteiligten ;)

Chito
29-05-2008, 09:02
also ... ich habe das jetzt noch einmal mit int main(void){} getestet und das geht jetzt bei mir auch. Ich wohl wohl gestern abend einfach nur überarbeitet. Weiß der Teufel wieso das gestern nicht ging. :rolleyes:

anda_skoa
29-05-2008, 15:21
Ähm, also vielleicht irre ich mich ja, aber wenn ich nicht ganz falsch liege, dann müsstest du über deinen Output von gcc nochmal nen linker laufen lassen, bevor du wirklich eine ausführbare Datei erhälst ;)

Nein, du irrst :)

Wenn du nicht explizit "-c" angibst, wird kompiliert und gelinkt.

Ciao,
_

Berufspenner
29-05-2008, 15:45
Nein, du irrst :)

Wenn du nicht explizit "-c" angibst, wird kompiliert und gelinkt.

Ciao,
_

Ah ok, man lernt nie aus :) Sowas kommt davon, wenn man immer mit einer IDE arbeitet ;)