17. juli 2002 - 22:16Der er
5 kommentarer og 1 løsning
Lidt hjælp ønskes
Jeg mangler nogle koder. Hvad der mangler fremgår af programkoden nenenunder:
// Forklaring af programmet: (dette program hedder opret fil programmet) // // Opret fil programmet skal køre under linux. // Programmet startes. Hvorfor og af hvad er ligegyldigt. // Opret fil programmet opretter en tom fil, med navnet notify. // Filen oprette i directoryen /var/spool/cron/crontabs/. // Efter et sekund slettes filen notify igen. enum {succes, fail} main() { FILE *filpointer ; char filnavn[] = "/var/spool/cron/crontabs/notify" ; int reval = succes ; if (( filpointer = fopen(filnavn, "w")) == NULL) { printf("Kan ikke oprette filen notify.") ; reval = fail ; } else printf("Filen notify er oprettet.") ;
# Her skal være kode, der får programudførelsen til at vente et sekund.
# Her skal være kode, der sletter notify igen. if (filen bliver slettet) printf("Filen notify er blevet slettet.") ; else { printf("Filen notify kunne ikke slettes.") ; reval = fail ; }
// Hvis filen bliver oprettet og slettet, returneres reval med værdien 0 (succes) // Hvis der undervejs sker en fejl, returneres reval med værdien 1 (fejl) return reval }
Til at slette filen igen kan du bruge unlink(FILE* fp); // ANSI-C funktion, skal være der
Ved ikke hvordan man vente i et sekund under Linux. Under windows har du en funktion der hedder: Sleep(DWORD dwMilliSec); Der må være noget tilsvarende under Linux?!?
-> kamikaze Det er et program jeg laver for og ven og jeg har ikke linux på min maskine. Derfor kan jeg ikke teste koden. Hvis vi dropper det med at vente et sekund, og indsætter den kode du har foreslået. Vil nedenstående program så køre under linux?
// Forklaring af programmet: (dette program hedder opret fil programmet) // // Opret fil programmet skal køre under linux. // Programmet startes. Hvorfor og af hvad er ligegyldigt. // Opret fil programmet opretter en tom fil, med navnet notify. // Filen oprette i directoryen /var/spool/cron/crontabs/. // Efter et sekund slettes filen notify igen. enum {succes, fail} main() { FILE *filpointer ; char filnavn[] = "/var/spool/cron/crontabs/notify" ; int reval = succes ; if (( filpointer = fopen(filnavn, "w")) == NULL) { printf("Kan ikke oprette filen notify.") ; reval = fail ; } else printf("Filen notify er oprettet.") ;
# Her skal være kode, der får programudførelsen til at vente et sekund.
// Her koden, der sletter notify igen. if ((unlink(filpointer)) == NULL) printf("Filen notify er blevet slettet.") ; else { printf("Filen notify kunne ikke slettes.") ; reval = fail ; }
// Her skal være kode, der frigiver filpointer
// Hvis filen bliver oprettet og slettet, returneres reval med værdien 0 (succes) // Hvis der undervejs sker en fejl, returneres reval med værdien 1 (fejl) return reval }
Nu blev jeg lige nødt til at dobbelt checkke. Og det var meget heldigt, for unlink tager ikke en FILE* som parameter, men bare filnavnet. Desuden skal du inkludere <stdio.h>.
Each of these functions returns 0 if successful. Otherwise, the function returns –1 and sets errno to EACCES, which means the path specifies a read-only file, or to ENOENT, which means the file or path is not found or the path specified a directory.
Mht. "...Vil nedenstående program så køre under linux?" -> Du skal jo kompilere den på Linux. Du kan ikke kompilere på Windows og køre på Linux, men det ved du nok godt :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.