Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: LinuxFanUNIX в Jul 10, 2009, 11:33



Титла: mount в C++
Публикувано от: LinuxFanUNIX в Jul 10, 2009, 11:33
Добър ден.

Опитвам се да направя mount на image файл в c++ обаче нещо не мога да се справя.
Код
GeSHi (C++):
  1. mount("/dev/sda2", "/mnt/sda2", "ext2", MS_RDONLY, "");
се справя отлично, но аз се нуждая от монтиране не на блоково устройство а на loop устройство. В bash го правя така:
Код
GeSHi (Bash):
  1. mount -o loop /home/image /mnt/sda2
но в C++ не знам как се прави.

Та бихте ли ми казали как се прави mount на image в C++?

Благодаря предварително!


Титла: Re: mount в C++
Публикувано от: task_struct в Jul 10, 2009, 13:59
Разгледай http://www.sbras.ru/cgi-bin/www/unix_help/unix-man?mount+2

На бързо го погледнах и не видях да има такава опция, но май чрез void *data параметъра ще стане или има линк към още няколко функции с някоя от тях :)

Успех  [_]3


Титла: Re: mount в C++
Публикувано от: Arvigeus в Jul 10, 2009, 14:50
Код
GeSHi (C++):
  1. #include <cstdlib>
  2. ...
  3. system("mount -o loop /home/image /mnt/sda2");
Ако искаш нещо да се променя го направи да се присвоява като char масив...

Ламерско решение, но става...


Титла: Re: mount в C++
Публикувано от: Ivshti в Jul 10, 2009, 17:04
Виж сорса на mount за опътване. Намира се в архива с изходен код на util-linux-ng.


Титла: Re: mount в C++
Публикувано от: LinuxFanUNIX в Jul 10, 2009, 20:48
Благодаря много за помощта, обаче в кода на mount има различни опции, а на мен ми трябва точно конкретно за даден image без да се пита потребителя какво да монтира, без проверка дали е успешно монтирането и т.н. Това със system() не ми харесва тъй като ако някой чете кода, доста ще се смее.  ;D

Ще се радвам ако има някой който знае отговора, пък ако не - благодаря все пак.


Титла: Re: mount в C++
Публикувано от: task_struct в Jul 10, 2009, 22:15
mount() е стандартна функция, тя трябва да има много опции. Като искаш само с твоите можеш да си направи wraper функция която да попълва останалите параметри. Щом функцията връща резултат той трябва да се проверява или поне в качественият софтуер така се прави.

П.С. Мъчих се да намеря повече инфо за mount(), но нищо не открих :(


Титла: Re: mount в C++
Публикувано от: task_struct в Jul 10, 2009, 22:21
Като тръгнах да търся за sys_mount() за да видя как е реализирана функцията в ядрото намерих това: http://coding.derkeiler.com/Archive/C_CPP/comp.lang.c/2008-05/msg00794.html

Мисля, че е точно това което търсиш :)