Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

C-routine om aanwezigheid bestand te testen

greffov
6 antwoorden
  • Hallo,
    Kan iemand mij aan een C-routine om de aanwezigheid van een file te testen, helpen?
    De routine moet in ANSI-C zijn omdat hij gebruikt wordt in een pakket dat alleen ANSI-C scripting ondersteunt.

    De test moet gedaan worden zonder dat de file, indien aanwezig, geopend wordt. Dus geen fopen; fclose statements, of pogingen de file te renamen.

    Het probleem is dat het C-script om de 5 minuten een tekstbestand aanmaakt, dat een
    andere PC constant tracht te openen, verwerken en als laatste weer verwijdert.
    Zonder voorziening treedt er in de tijd gezien een situatie op dat beide programma's gelijktijdig op dit bestand trachten toe te grijpen. Dit levert een conflict op. Dat laatste wil ik voorkomen
    door in het het C-script een test in te bouwen of het bestand al op de verwachte locatie aanwezig is.

    Pogingen de aanwezigheid te testen midddels renamen of met fopen, triggeren dezelfde conflict situatie, als zonder test.

    Bij voorbaat dank voor een ieders bijdrage
  • Het kan aan mij liggen hoor, maar zo'n routine is toch niet echt moeilijk om te schrijven???

    ik weet niet op welk platform het draait, maar als het onder Unix draait is er ook een heel simpel shell-script commandootje: test. Kan precies wat jij wilt en nog veel meer.

    Unix is in C geschreven dus als je er echt niet uitkomt rip je de code van test. moet je alleen wel de kernel-code doorspitten want het is een built-in commando en dat is misschien wel veel moeite voor zo'n simpele routine :wink:

    GreetzZzz
  • ik bedoelde natuurlijk Linux.

    excuses aan alle oplettende Unix gurus hier op dit forum :wink:

    GreetzZzz
  • struct stat stbuf;
    if (stat(<filenaam>, &stbuf) == -1) {
    /* file not found */
    [evt. code]
    } else {
    [andere code]
    }

    [ Dit Bericht is bewerkt door: greffov op 2002-02-19 12:11 ]
  • ehmmm, vergeet niet <sys/stat.h> te inkloeden.
  • _access(<bestand>,00) zou ook moeten werken …

    [code:1:b1570e5d81]
    Include: <io.h> Required only for function declarations
    <errno.h> Required only for definition of errno constants

    Syntax: int _access( char *pathname, int mode );
    mode: 00 (existence) 04 (read permission)
    02 (write permission) 06 (read & write permission)

    Returns: 0 if <pathname> has <mode>, or -1 if it does not have the
    given mode or if it does not exist.
    errno: EACCES, ENOENT

    See also: _stat, _chmod, _utime, _open
    [/code:1:b1570e5d81]

    // – edit –
    Voor 'stat()' moet het bestand al open zijn … volgens de beschrijving hier :
    [code:1:b1570e5d81]
    The _fstat and _stat functions obtain information about an open
    file and store the information in the structure pointed to by
    <buffer>. The _fstat function specifies the file with a file
    handle and provides information about files and devices, but not
    directories. The _stat function specifies the file, which can
    include a path, and provides information about files but not
    drives or directories.
    [/code:1:b1570e5d81]
    _________________
    - JaFO's Bot-editor versie 2.0 -
    // —
    Binnenkort(*) : JBE v2.5
    - meer features
    - minder bugs
    - nog beter
    (*) "When it's done!" (natuurlijk)

    [ Dit Bericht is bewerkt door: JaFO op 2002-02-19 15:36 ]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.