2012-04-04 13 views
-1

Ich schreibe ein Socket-Programm, wobei der Client eine Datei an den Server sendet und der Server den Dateinamen an einem neuen Speicherort speichert. Meine Frage ist: Wenn der Client den Dateinamen an den Server übergibt, wie kann ich eine Datei mit dem gleichen Namen an einem neuen Speicherort erstellen. Die Datei-Handler wie folgt aussiehtErstellen einer Datei, die als Argument übergeben wird C

fw=fopen("c://TestCopy","a+"); 

, was muss ich tun, damit fopen den Dateinamen nimmt übergeben, um die Datei zu öffnen.

+0

Was meinst du mit "same name" und "neuen Standort"? –

+0

Zum Beispiel: Das Client-Programm läuft so - ./client.exe 127.0.0.1 100 IOC-LOGO.jpg. Der Server muss den Dateinamen abrufen und denselben Namen an einem neuen Speicherort speichern. – Sarvavyapi

+0

Dies ist immer noch ambig. Was meinst du mit "demselben" Namen und "neuem" Standort, genauer gesagt? –

Antwort

-1

Ich bin nur ein bisschen verwirrt hier. Ich denke, was Sie wollen, ist dies:

fw = fopen(argv[1], "r"); 

... 

// send the filename 
send(server, argv[1], strlen(argv[1]) + 1, 0); 

... 

Server:

... 

// receive the file name 
int fileNameLen = recv(client, buffer, maxBufferSize, 0); 

fopen(buffer, "w"); 

... 
+0

Hier erhält Puffer den Dateinamen, der von fopen verwendet wird. Aber was ist der Weg von fopen? Mit anderen Worten, wenn argv [1] vom Client übergeben wird C: \ Temp \ Test.txt, ich möchte die gleiche Datei unter C: \ Test.txt vom Server – Sarvavyapi

+0

@Sarvavyapi dann müssen Sie einen Weg finden, um zu machen Die Zeichenfolge entspricht der letzten Pfadkomponente. Dies ist nicht einfach, wenn Sie etwas plattformübergreifend durchführen möchten. Ich habe die Frage, die Sie gestellt haben, beantwortet. Recherchieren Sie dazu, wie Sie die Pfadkomponente erhalten. –

+0

@Richard: Entschuldigung, ich stimme dir nicht zu. Die Frage ist zu zweideutig, um Aussagen darüber machen zu können, ob diese Antwort beantwortet wurde oder nicht. Du hättest gar nicht antworten sollen, wenn du nicht wüsstest, was gefragt wurde. Dafür gibt es Kommentare. –

Verwandte Themen