marishu Skrevet 10. november 2008 Del Skrevet 10. november 2008 Hei, Jeg driver med socket programmering og har fått litt problemer. Det jeg lurer på er følgende: klienten har tilgang til en mappe og dens undermapper, men ikke de over foreldremappen. Når klienten har vært i en undermappe og vil tilbake til foreldremappen, men den skal ikke ha tillgang til å gå lenger opp enn foreldremappen. Hvordan gjøre jeg dette? Jeg har lest litt om chdir() og system(), men finner ikke ut noe. Jeg er en nybegynner i C, så det kan hende at dette egentlig er veldig lett:) Lenke til kommentar
Giddion Skrevet 10. november 2008 Del Skrevet 10. november 2008 (endret) Vanligvis får folk til bytting av mapper og sånt, men sliter med socket Jeg tror at du bruker windows og da bør du kikke litt på dette Changing the Current Directory Lykke til Edit: Mulig du ikke bruker windows Vel chdir fungere ved at du skriver inn direktivet du vil være. Ved bruk av getcwd finner du ut hvor du er. Vet å bruke resultatet og litt manipulering av stringen du får lageg en som gir stien til mappen "over", den stringen sender du til chdir som da flytter deg et steg "opp". Endret 10. november 2008 av Giddion Lenke til kommentar
GeirGrusom Skrevet 10. november 2008 Del Skrevet 10. november 2008 Du kan også bruke ".." for å nå undermappen. Lenke til kommentar
marishu Skrevet 11. november 2008 Forfatter Del Skrevet 11. november 2008 Jeg bruker linux (ubuntu), ikke noe windows her! Jeg har nå fått til å bytte directory, har også fått til å komme tilbake til parent folder ved å bruker chdir(".."). Problemet er at klienten ikke skal ha tilgang til mapper over parentfolder som jeg allerede har definert. Jeg har altså definert et område klienten skal ha tilgang til, men sånn som jeg bruker chdir nå, så kan den gå helt til roten ved å bruke chdir("..") nok ganger, og dette skal altså ikke klienten kunne gjøre. Skjønner altså ikke hvordan jeg skal få til dette, har sett masse på nettet og i manualen, men finner ingenting som er brukbart:( Lenke til kommentar
Giddion Skrevet 11. november 2008 Del Skrevet 11. november 2008 (endret) Du kan også bruke ".." for å nå undermappen. Du må alltid gjøre det så enkelt <snip> Jeg vet ikke helt hvordan ditt program "beveger" seg, men hvis det bare beveger seg opp og ned et steg av gangen kan du hindre klienten når du har kommet på toppen av hva den får lov til. eks. (psudokode) if (getcwd () == "/home/Gunnar") { //Oj oj oj nå skal vi ikke lengere opp // sende en melding til den andre maskinen at den ikke får lov } else { //da må vi være "nedenfor" /home/Gunnar chdir("..") } Endret 11. november 2008 av Giddion Lenke til kommentar
marishu Skrevet 11. november 2008 Forfatter Del Skrevet 11. november 2008 Du kan også bruke ".." for å nå undermappen. Du må alltid gjøre det så enkelt <snip> Jeg vet ikke helt hvordan ditt program "beveger" seg, men hvis det bare beveger seg opp og ned et steg av gangen kan du hindre klienten når du har kommet på toppen av hva den får lov til. eks. (psudokode) if (getcwd () == "/home/Gunnar") { //Oj oj oj nå skal vi ikke lengere opp // sende en melding til den andre maskinen at den ikke får lov } else { //da må vi være "nedenfor" /home/Gunnar chdir("..") } Takk for svar, skal prøve dette og se om jeg får det til:) Lenke til kommentar
marishu Skrevet 11. november 2008 Forfatter Del Skrevet 11. november 2008 Da har jeg akkurat testet ut forslaget ditt og det funket som en drøm! Tusen takk:D Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå