Das Programm sample2 wird folgendermaßen aufgerufen: sample2
datei1 [
datei2 ] [
datei3 ] [
datei4 ]
Name und Zugangsberechtigung zum fernen System werden dann im Dialog erfragt. Damit das Programm ablaufen kann, muss das folgende Verzeichnis vorhanden sein:
in Windows: das Arbeitsverzeichnis
%TMP%\ft
in Unix-Systemen: das Arbeitsverzeichnis
$HOME/ft
Das Programm holt jede der angegebenen Dateien asynchron aus dem HOME-Verzeichnis des Benutzers bzw. aus der im Berechtigungsprofil festgelegten Benutzerkennung im fernen System. Im lokalen System wird die Datei unter gleichem Namen in dem Verzeichnis abgespeichert, aus dem das Programm aufgerufen wurde. Wenn dort bereits eine Datei mit diesem Namen besteht, wird sie überschrieben.
Ist die Übertragung erfolgreich beendet, wird die Datei anschließend im lokalen System ausgedruckt. Wenn die Datei nicht übertragen wurde, erhält der Benutzer eine Meldung. Wird vom Benutzer z.B. in Windows durch Eingabe von STRG+C ein SIGINT-Signal erzeugt, solange eine Datei noch nicht übertragen ist, wird der laufende Übertragungsauftrag abgebrochen. Die folgenden Übertragungsaufträge werden nicht angestoßen.
Das Programm ist folgendermaßen aufgebaut:
Zunächst wird mit der Funktion ft_open() eine Sitzung eröffnet, wobei als Arbeitsverzeichnis
%TMP%\ft
(in Windows) bzw.$HOME/ft
(in Unix-Systemen) fest zugeordnet wird.ft_open() liefert eine Sitzungsnummer zurück, die die Sitzung kennzeichnet und bei weiteren Funktionsaufrufen angegeben werden muss.
Für jede der zu übertragenden Dateien wiederholen sich folgende Vorgänge:
Die asynchrone Dateiübertragung wird mit der Funktion ft_transfer() eingeleitet.
Fortwährend fragt das Programm ab, ob vom Benutzer ein SIGINT-Signal erzeugt wurde. Ist dies der Fall, so wird der Auftrag mit der Funktion ft_cancel() abgebrochen, falls der Status „Waiting“ oder „Running“ ist.
Solange die Dateiübertragung nicht beendet ist oder nicht abgebrochen wurde, fragt die Funktion ft_reqstat() den Status des Übertragungsauftrags ständig ab.
Ist der Status des Auftrags „Terminated“, so beginnt die Folgeverarbeitung, d.h. die ins lokale System übertragene Datei wird ausgedruckt.
Ist der Status des Auftrags „Aborted“, so wird eine Meldung ausgegeben.
Der Übertragungsauftrag wird in allen Fällen mit der Funktion ft_reqterm() als beendet gekennzeichnet.
Die Sitzung mit der Funktion ft_close() geschlossen, nachdem alle angegebenen Dateien bearbeitet wurden.