The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
ser etter ikke er null philplasma UNIX for Dummies Spørsmål og svar 6 01-08-2008 04:51
sjekking uid filthymonk Shell programmering og Skripting 7 07-19-2007 11:40
Checking cp fremgang MarGur UNIX for Dummies Spørsmål og svar 0 05-15-2007 05:13
Checking for PXE Maestro @ Altiris Sun Solaris 5 05-25-2004 01:06

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 03-06-2008
ramkrix ramkrix is offline
Registrert bruker
  
 

Bli Dato: desember 2007
Beliggenhet: TamilNadu, INDIA
Innlegg: 52
Exclamation EOF sjekke nedenfor

Hei,

Jeg praktiserer øvelsen programmer med System samtaler.

Exercise Spørsmål: skrive en pogram å godta et filnavn fra brukeren. Programmet skal skrive ecery femte byte av filen til standard output.

Min Program:

# Include <stdio.h>
# Include <fcntl.h>
# Include <error.h>

main ()
(
int fd, first_offset \u003d 5, move_offset \u003d 0, x \u003d 1;
char a, navn [20];
scanf ( "% s", navn);

fd \u003d open (navn, O_RDONLY, 0755);
printf ( "fd er% d", fd);

if (fd \u003d\u003d- 1)
(
printf ( "feil");
exit (1);
)

while (x <5)
(
move_offset \u003d move_offset + first_offset;
lseek (fd, move_offset-1, 0);
read (fd, navn sizeof (navn));
skriver (1, navn, 1);
x + +;
)
)


Utdata:
[ramki @ lindesk3 sysint_ex] $ cc ex1.c-o ex1
[ramki @ lindesk3 sysint_ex] $ ./ex1
. / test
FIVEfd er 3

Filen "Test" innhold:
abcdFfghiIklmnVpqrsE



Spørsmålet mitt nå:
1. i programmet, jeg brukte en stund loop med en varaible "X" og sammenligne det med til tilfeldige ingen av mine valg 5. I stedet jeg ønsker å se EOF tilstand i whilepart. Slik kontrollerer det.
Hvis vi bruker filen pekeren og fopen fn, kan vi bruke while (feof (fp) \u003d\u003d 0). Men vi brukte syatem samtaler og jeg vet hvordan du skal sjekke tilstanden her.

2. I te programmet utgang, fant jeg "FEM" før utskrift av filedescriptor nummer. Men pr min program flyt, fd skal skrives først og deretter utdataene "FEM".

3.Is det noen othet måte å skrive programmet mer enkle og presise, særlig ved hjelp piointer for å få navnet på filen, instaed av hjelp Array.

Vennligst hjelp ...

Takk,
Ramkrix
  #2 (permalink)  
Old 03-06-2008
kløver shamrock is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: USA
Innlegg: 753
Sitat:
Originally Posted by ramkrix View Post

Spørsmålet mitt nå:
1. i programmet, jeg brukte en stund loop med en varaible "X" og sammenligne det med til tilfeldige ingen av mine valg 5. I stedet jeg ønsker å se EOF tilstand i whilepart. Slik kontrollerer det.
Hvis vi bruker filen pekeren og fopen fn, kan vi bruke while (feof (fp) \u003d\u003d 0). Men vi brukte syatem samtaler og jeg vet hvordan du skal sjekke tilstanden her.

2. I te programmet utgang, fant jeg "FEM" før utskrift av filedescriptor nummer. Men pr min program flyt, fd skal skrives først og deretter utdataene "FEM".

3.Is det noen othet måte å skrive programmet mer enkle og presise, særlig ved hjelp piointer for å få navnet på filen, instaed av hjelp Array.

Vennligst hjelp ...

Takk,
Ramkrix


Code:
#include <stdio.h>

main(int argc, char *argv[])
{
    char *infile;
    FILE *stream;

    infile = argv[1];
    stream = fopen(infile, "r");
}

... Nå kan du bruke strømmen status funksjoner som feof eller fError.
  #3 (permalink)  
Old 03-07-2008
ramkrix ramkrix is offline
Registrert bruker
  
 

Bli Dato: desember 2007
Beliggenhet: TamilNadu, INDIA
Innlegg: 52
Red face

Takk for svar kløver ..

Er TIS Forresten, jeg må ta med tilstanden mens loop:

while (feof (stream) \u003d\u003d 0)

Ett spørsmål til deg: i stedet for å bruke kommandolinjen args og C biblioteket FNs kan vi sjekke dette ved å ha programmet absolutt system samtaler ..

Takk på forhånd,
Ramkrix
  #4 (permalink)  
Old 03-07-2008
kløver shamrock is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: USA
Innlegg: 753
Sitat:
Originally Posted by ramkrix View Post
Takk for svar kløver ..

Er TIS Forresten, jeg må ta med tilstanden mens loop:

while (feof (stream) \u003d\u003d 0)

Ett spørsmål til deg: i stedet for å bruke kommandolinjen args og C biblioteket FNs kan vi sjekke dette ved å ha programmet absolutt system samtaler ..

Takk på forhånd,
Ramkrix
Du kan bruke "absolutt system anrop" i stedet for standard C-biblioteket rutiner som fopen (), og du kan unngå å sende inn filnavnet som en kommandolinje argumentet på bekostning av hardcoding input filnavn i åpen () system samtale.

Systemet kaller tilnærmingen er bedre for lesing 5 byte om gangen fra inndatafilen og utskrift femte byte til standard output. Denne metoden foretrekkes over øke en teller og gjentatte ganger testing hvis x <5 eller sjekke EOF bruker feof () standard lib funksjon.


Code:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

main(int argc, char *argv[])
{
    int fd;
    char name[5];

    fd = open("/path/to/input/file", O_RDONLY);

    while (read(fd, (void *) name, (size_t) 5) == 5)
        printf("the fifth byte is %c\n", name[4]);
}

  #5 (permalink)  
Old 03-10-2008
ramkrix ramkrix is offline
Registrert bruker
  
 

Bli Dato: desember 2007
Beliggenhet: TamilNadu, INDIA
Innlegg: 52
Igjen takk for nyttig info Shamrock.

La meg spørre deg siste spørsmål fra ditt svar:
while (read (fd, (void *) navn (size_t) 5) \u003d\u003d 5)

The "(size_t) 5", hva betyr det og det? Bcoz jeg leste fra en bok som vi trenger for å gi sizeof () operatør på slutten. Også er du comaparing det til verdien "\u003d\u003d 5"? Jeg kunne ikke forstå her.

Under ett er det jeg kodet i mitt program: read (fd, navn sizeof (navn));

Var min rett en?
  #6 (permalink)  
Old 03-10-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Bli Dato: desember 2003
Sted: Florida
Innlegg: 1941
Sitat:
Under ett er det jeg kodet i mitt program: read (fd, navn sizeof (navn));
Var min rett en?
sizeof (navn) er 20, siden du definert navn som en matrise med 20 tegn dvs. char navn [20]. Derfor programmet prøver å lese 20 bytes i en tid - uten feil merke.

Sitat:
while (read (fd, (void *) navn (size_t) 5) \u003d\u003d 5)
Her programmet prøver å lese 5 bytes og sjekker at den har actally lest 5 bytes. size_t defineres av ISO C for bruk i representerer størrelse og er svært nyttig whien koden mobilitet på tvers av forskjellige arkitekturer og programmering modeller er ønskelig. Det er nødvendig å være en usignert integral type. Vanligvis er det en int eller lang.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 02:44.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0