Forum

[c/c++] "Chodzenie" po katalogach

[+] Twoje konto

Subskrybuj kanał najnowszych wypowiedzi w tym temacie

Wątek Forum > Porady > Programowanie > [c/c++] "Chodzenie" po katalogach

Idź do strony:1
Ocena: (Ocen: 0)
Wypowiedzi 1 - 9 z 9
 Zarejestrowany, zwieszony yarpo Kopiuj nick (0.0.0.*) |  
Wypowiedź dodana: 26 listopada 2007, 19:55:40 | Wypowiedź edytowana Ostatnio edytowana: 26 listopada 2007, 19:58:47 po raz 1-wszy przez: yarpo
« Opcje

Witam.

Mam do napisania program na projekt. Właśnie zacząłem.
Program ten ma być marną imitacją programów typu Norton Commander itp.

Do wyśietlania zawartości folderu chciałbym użyć funkcji popen():

Cytat:

Library: stdio.h

Prototype: FILE *popen(const char *command, const char *type);

Syntax: FILE *fp;
fp = popen( "ls -l", "r");

Notes:
command - is the command to be issued.
type - r - read O/P from command.
- w - Write data as I/P to command.

#include <stdio.h>
int str_len(char*);
char *bez_entera(char*);
int main(void){
FILE *fp;
char line[130];
fp = popen("ls -a", "r");
while ( fgets( line, sizeof line, fp))
if (line[1]!= '\n') printf("%s\n", bez_entera(line));
pclose(fp);

system("cd las"); // powinno przejsc do katalogu 'las'

fp = popen("ls -l", "r");
while ( fgets( line, sizeof line, fp))
if (line[1]!= '\n') printf("%s\n", bez_entera(line));
pclose(fp);
return 0;
}
int str_len(char *a){
int i = 0;
while (a[i]) i++;
return i;
}
char *bez_entera(char *a){
a[str_len(a)-1] = 0;
return a;
}

Póki co to jest kod bardzo "na teraz". Nie jest to kod nawet początkowy programu. Po prostu testuję jak to ma działać.

W folderze, w którym znajduje się program jest też folder 'las'. Za pomocą

system("cd las")

chciałbym przejść do las i wyświetlić jego zawartość. Niestety. Po wywołaniu system("cd las") jednak "nie zmieniam folderu". Wydaje mi się, że musiałbym gdzieś to zapisać [chyba]...

Gdyż powyższy kod powoduje dwukrotne wyświetlanie tego samego... :-(

Jeśli ktoś wie jak móc "przechodzić" do do innych folderów [może są do tego jakieś funkcje C/C++ lub całe biblioteki] to z chęcią posłucham.

Z góry dziękuję za wszelką pomoc :-)

EDIT. Zapomniałem, jest to pisane pod linuksa.

 Gość REKLAMA Kopiuj nick (*->*)
Wypowiedź dodana: 26 listopada 2007, 19:55:41

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.238.128.*) |  
Wypowiedź dodana: 26 listopada 2007, 20:17:30
« Opcje

Powinno działać teoretycznie... A spróbuj stosować funkcję opendir i jej stowarzyszone.


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 Zarejestrowany, zwieszony yarpo Kopiuj nick (0.0.0.*) |  
Wypowiedź dodana: 27 listopada 2007, 01:56:15
« Opcje

Dobra, chyba jednak skorzystam z opendir / readdir itp.
pewnie będę miał jeszcze jakieś pytania :-P. Ale na dziś starczy :-)

Dzięki za pomoc :piwo:

 Zarejestrowany, zwieszony yarpo Kopiuj nick (0.0.0.*) |  
Wypowiedź dodana: 1 grudnia 2007, 20:48:59
« Opcje

Czy jest jakiś sposób aby w programie C/C++ pobrać położenie programu? Jako ścieżkę bezwzględną.

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.238.128.*) |  
Wypowiedź dodana: 1 grudnia 2007, 21:12:10
« Opcje

JEśli się nie mylę to jest to zerowy parametr w tablicy parametrów (nagłówek funkcji main: int argc, char *argv[] choć może się różnić w zależności od kompilatora)


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 Zarejestrowany, zwieszony yarpo Kopiuj nick (0.0.0.*) |  
Wypowiedź dodana: 1 grudnia 2007, 21:28:13
« Opcje

printf("Jestes tu: %s\n",argv[0]);

Zwraca "./plik" - przynajmniej u mnie. Debian, gcc.

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.238.128.*) |  
Wypowiedź dodana: 1 grudnia 2007, 21:47:39
« Opcje

Eh, linux... :-( nie mam pomysłu w takim razie. Nie programuję zasadniczo pod ten system...


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 Zarejestrowany, zwieszony yarpo Kopiuj nick (0.0.0.*) |  
Wypowiedź dodana: 1 grudnia 2007, 23:58:20
« Opcje

No trudno :-)

Trzeba będzie to jakoś inaczej obejść :-)

 Zarejestrowany Soul Mężczyzna Kopiuj nick (83.6.205.*) |  
Wypowiedź dodana: 2 grudnia 2007, 00:38:03
« Opcje

Nie programuję zasadniczo pod ten system...

Jestem prawie pewien, że yarpo też zasadniczo nie będzie :>


Duszołap

 
Idź do strony:1

[+] Pokaż/odśwież listę czytających i monitorujących ten wątek

Podobne tematy:
Tytuł wątkuDziałWypowiedziWyświetleńOcenaOstatnia wypowiedź
Wątek zamkniętyniewidoczny post w "księdze gości"- albo błąd w wyświetleniu pola "ostatnia wypowiedź"Błędy na stronie4313 22.06.2007 23:47:45
WątekList motywacyjny in "inglisz"
Potrzebna pomoc w napisaniu listu motywacyjnego po angielsku
Pogaduchy11448 28.05.2009 19:31:03
Wątek zamkniętyNie można pobrać dokumentu
Podczas pobierania "Baza danych dla Forum" wyskakuje błąd 404
Błędy na stronie2277 3.02.2008 11:55:05
Wątek zamkniętyMaile - "Nowa prywatna wiadomość"Błędy na stronie3177 22.06.2007 14:48:14
Wątek zamkniętyPasek "zainteresowani wątkiem"Opinia o stronie oraz propozycje18182 10.06.2007 14:24:57

Nowa wypowiedź

Nowa wypowiedź
Nie jesteś zalogowany; będziesz traktowany jako gość!
Zaloguj Zaloguj
Nick (gość): | Przepisz ten kod [?]: 07b8c:
Tekst:

 

Subskrybuj kanał najnowszych wypowiedzi w tym temacie


Chcesz mieć też takie forum na swojej stronie? Napisz!

Strona istnieje od 25.01.2001
Ta strona używa plików Cookie
 
archive To tylko kopia strony wykonana przez robota internetowego! Aby wyświetlić aktualną zawartość przejdź do strony.
Ładowanie...

Optymalizowane dla przeglądarki Firefox
© Copyright 2001-2017 Dawid Najgiebauer. Wszelkie prawa zastrzeżone.
Ostatnia aktualizacja podstrony: 22.09.2014 12:12
Wszystkie czasy dla strefy czasowej: Europe/Warsaw