2015-03-07 1 views
1

Работа с программой на C в Debian, и мне нужно получить доступ к каталогу с номерами в конце его, которые иногда меняются. При доступе из командной строки я могу заполнить вкладку или использовать *, как я могу это сделать с помощью программы на языке С, используя fopen или какой-либо другой метод?fopen auto complete change directory

pwm = fopen("/sys/devices/ocp.3/pwm_test_P8_19.15/duty // this is the changing directory 
pwm = fopen("/sys/devices/ocp.3/pwm_t*/duty // this did not work 
+0

пытался также изменение каталога символ * каталог = "/sys/devices/ocp.3/pwm_t*"; int ret; ret = chdir (справочник); pwm = fopen ("duty", "w"); – graceyj20

ответ

0

использованием stdio.h, stdlib.h, unistd.h

int k = 0; 
char pwm_path[100]; 
for (k = 14; k < 20; k++) 
{ 

    sprintf(pwm_path, "/sys/devices/ocp.3/pwm_test_P8_19.%d/period", k); 
    puts(pwm_path); //debug 
    if (access(pwm_path, F_OK) == 0) // if it finds path, then = 0 
     { 
     //printf("Files does exists, %d\n", k); // debug 
     pwm = fopen(pwm_path, "w"); 
     fseek(pwm,0,SEEK_SET); 
     fprintf(pwm,"20000000"); // pulse period in uS 
     fflush(pwm); // flush free up memory 
     break; // break out of loop once found 
     } 
}