Программа для кодирования видео на основе GStreamer при старте создает директорию для монтирования SD-карты
Код: Выделить всё
# ls -li /tmp/
27991 srwxr-xrwx 1 root root 0 Jan 1 01:22 camera // управляющий сокет программы
27995 drwxr-xr-x 2 root root 40 Jan 1 01:22 sd // директория для монтирования SD-картыПосле получения команды программа монтирует SD-карту:
Код: Выделить всё
static const char *SD_CARD = "/dev/mmcblk0p1"; /**< SD-карта */
static const char *fs_name[FS_UNKNOWN] = {"vfat", "ext3"};
gboolean mount_sd(const gchar *dir)
{
unsigned long flag = MS_NOSUID | MS_NOEXEC | MS_NODEV;
if (NULL == dir)
return FALSE;
if (geteuid())
return FALSE;
if (!mount(SD_CARD, dir, fs_name[FS_VFAT], flag, ""))
return TRUE;
return !mount(SD_CARD, dir, fs_name[FS_EXT3], flag, "");
}И используя элемент GStreamer-а multifilesink пишет файлы:
Код: Выделить всё
# ls -l /tmp/sd
-rwxr-xr-x 1 root root 583078 Jan 1 1980 stream0_000000.avi
-rwxr-xr-x 1 root root 1033840 Jan 1 1980 stream0_000001.avi
-rwxr-xr-x 1 root root 688128 Jan 1 01:19 stream0_000002.aviПри получении команды переключения на другой тип выходного потока программа размонтирует SD-карту и переконфигурирется.
Проблема в том, что программе не удается размонтировать SD-карту и после того как SD-карта смонирована я наблюдаю странное:
Код: Выделить всё
# ls -li /tmp
27991 srwxr-xrwx 1 root root 0 Jan 1 01:22 camera
1 drwxr-xr-x 2 root root 16384 Jan 1 01:22 sdВопрос - почему inode директории монтирования изменился после монтирования SD-карты?
Спасибо.