как загрузить файлы из любого каталога в программе c - PullRequest
0 голосов
/ 25 октября 2010

Я хочу изменить этот код ниже, чтобы файл inwashfile мог загружаться из любого каталога вместо загрузки из переменной среды tech_projects.

  /**Get projects directory from environment variable****************/
 strcpy(pjects.arr, getenv("Tech_Projects"));

  pjects.arr[strlen(pjects.arr)] = '\0';

  if (strcmp(inwashfile.arr, "null") != 0)
  {
    for (d=2;d<inwashfile.len;d++)
    {
      tempfile.arr[d-2] = inwashfile.arr[d];
    }      
    memset(inwashfile.arr, '\0', 255);    

    strcpy(inwashfile.arr, pjects.arr);
    strcat(inwashfile.arr, tempfile.arr);

    inwashfile.len = strlen(inwashfile.arr);
    inwashfile.arr[inwashfile.len] = '\0';
    do_wash[0] = 'T';
  }
  else
  {
    do_wash[0] = 'F';
  }
printf("3\n");
  do_wash[1] = '\0';

Ответы [ 2 ]

0 голосов
/ 26 октября 2010

Это может быть

strcpy(pjects.arr, argv[ 1 ] );

, а указанный каталог может быть передан из командной строки, например,

$ myprogram /user/foo
0 голосов
/ 25 октября 2010
 /**Get projects directory from environment variable****************/
 /* You need to replace this line with wherever you want to get the
    file name from. Either request it from the user, pull it from a
    configuration file or read it from the command line */
 strcpy(pjects.arr, getenv("Tech_Projects"));

  /* this line does absolutely nothing. strlen() relies on the string
     already being null-terminated */
  pjects.arr[strlen(pjects.arr)] = '\0';

  if (strcmp(inwashfile.arr, "null") != 0)
  {
    for (d=2;d<inwashfile.len;d++)
    {
      tempfile.arr[d-2] = inwashfile.arr[d];
    }      
    memset(inwashfile.arr, '\0', 255);    

    strcpy(inwashfile.arr, pjects.arr);
    strcat(inwashfile.arr, tempfile.arr);

    inwashfile.len = strlen(inwashfile.arr);
    inwashfile.arr[inwashfile.len] = '\0';
    do_wash[0] = 'T';
  }
  else
  {
    do_wash[0] = 'F';
  }
printf("3\n");
  do_wash[1] = '\0';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...