Как создавать символические ссылки в FUSE?

Я разрабатываю приложение FUSE, которое берет каталог с mp3 и монтирует файловую систему в другой каталог со следующей структурой (в соответствии с их тегами):

    Artist1
       |
       -----> Album11
                 |
                 -----> Track01
                 -----> Track02
                 -----> Track03
                 -----> Track04
                 -----> Track05
       -----> Album12
       ....
    Artist2
       |
       -----> Album21
       -----> Album22
       ....
    Artist3
    .....

Я использую база данных sqlite3 для хранения ссылок на реальные файлы. Элементы исполнителей и альбомов - это папки, а элементы треков - это ссылки на настоящие.

Мне удалось создать папки для исполнителей и альбомов. Но теперь у меня проблема.

У меня есть это:

  static int getattr(...) {

      ....
      else if ( level == 0  || level == 1 || level == 2 )
      {
          // Estamos en el primer nivel. Son artistas, y por lo tanto, carpetas.
          stbuf->st_mode = S_IFDIR | 0755;
          stbuf->st_nlink = 2;
          lstat(path, stbuf);
      }
      else if (level == 3) {
      // Estamos en el tercer nivel. Son canciones, por lo que son enlaces
      stbuf->st_mode = S_IFLNK | 0755;
      stbuf->st_nlink = 2;
      lstat(path, stbuf);
      }

      .....
  }

А теперь, Когда я захожу в каталог треков, у меня появляется сообщение, в котором говорится, что функция не реализована (функции ссылок). Какую функцию мне нужно реализовать, чтобы узнать, куда указывает ссылка? Или где мне указать направление указателя?

Спасибо!

6
задан Javier Manzano 23 May 2011 в 10:50
поделиться