Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

bs2fstat - Zugriff auf Dateinamen aus dem Katalog

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

int bs2fstat(const char *muster, void (*fkt)(const char *d_name, int len));

bs2fstat liefert

  • den vollqualifizierten Dateinamen (:catid:$userid.dateiname) einer oder mehrerer Dateien, die das Auswahlkriterium muster erfüllen, sowie

  • die Länge des jeweiligen Dateinamens inkl. dem abschließenden Nullbyte (\0).

Für jede gefundene Datei ruft bs2fstat eine vom Benutzer bereitzustellende Funktion fkt auf und übergibt an diese als aktuelle Argumente den jeweiligen Dateinamen d_name (Zeichenkette char *) und die Namenslänge len (ganze Zahl).

Wenn keine Datei dem Auswahlkriterium muster entspricht oder muster fehlerhaft ist, unterbleibt der Aufruf der Funktion fkt, und bs2fstat liefert als Returnwert eine DMS-Fehlermeldung.

Parameter

const char *muster:

Zeichenkette, die das Auswahlkriterium für einen oder mehrere Dateinamen angibt. muster ist ein voll- oder teilqualifizierter Dateiname mit Wildcard-Syntax. Außerdem können aus Kompatibilitätsgründen weitere Parameter angegeben werden, die die Auswahl der Dateien beeinflussen, z.B:

      • Datei- und Katalogeigenschaften (FCBTYPE, SHARE etc.)
      • Erstellungs- und Zugriffsdatum (CRDATE, EXDATE etc.)

Diese Parameter müssen in der Syntax des ISP-Kommandos FSTAT angegeben werden. Beispielsweise liefert das Muster "*,crdate=today" die Namen aller Dateien, die am jeweils aktuellen Tag ("heute") erstellt bzw. verändert wurden.

void (*fkt)(const char *d_name, int len)

Eine vom Benutzer bereitzustellende Funktion mit den Parametern d_name (Dateiname) und len (Namenslänge). Diese Parameter werden von bs2fstat bei jedem Funktionsaufruf mit aktuellen Werten versorgt. Die Funktionsaufrufe erfolgen durch bs2fstat automatisch (in einer while -Schleife).

Returnwert

 0     

bei erfolgreichem Aufruf.                                                                                          

 

DMS-Fehlermeldungscode

 

 

bei nicht erfolgreichem Aufruf.

Hinweise

Der DMS-Fehlermeldungscode kann nur außerhalb der benutzereigenen Funktion fkt abgefragt werden, da bei erfolgloser Suche die Funktion nicht aufgerufen wird (siehe auch Beispiel).

Beispiel

Folgendes Programm macht alle Dateien, die dem vom Benutzer eingegebenen Namensmuster
entsprechen, mit dem MODIFY-FILE-ATTRIBUTES-Kommando shareable.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void share(const char *, int);
int main(void)
{
  char name[54];
  int result;
  printf("Welche Dateien shareable machen?\n");
  gets(name);
  result = bs2fstat(name, share);
  if(result != 0)
     printf("Fehlercode: DMS%x\n", result);
  return 0;
}
void share(const char *nam, int len)
                        /* die formalen Parameter nam und len werden von */
                        /* bs2fstat als aktuelle Parameter geliefert */
{
  char cmd[200];
  strcpy(cmd, "/MODIFY-FILE-ATTRIBUTES ");
  strcat(cmd, nam);
  strcat(cmd, ",PROTECTION=PAR(USER-ACCESS=ALL-USERS)");
  system("/MODIFY-TERMINAL-OPTIONS OVERFLOW-CONTROL=NO-CONTROL");
  printf("%s\n", cmd);
  system(cmd);
}

Siehe auch

system