У меня есть программа на C++. Он находится на USB-накопителе. Как я могу определить путь/dev этого USB-накопителя? (из текущей текущей программы)Получить/dev/<whatever> USB-накопитель, содержащий исполняемый исполняемый файл C++
ответ
Предполагая, что вы находитесь в Linux (вы не указали, какую ОС). Вы можете получить полный исполняемый путь, посмотрев/proc/self/exe - обратите внимание, что проверка argv [0 ] не будет работать здесь (причина, описанная выше).
/proc/self/exe - это символическая ссылка на полный путь, который вызывается. «Я» - это символическая ссылка на ваш собственный pid, поэтому вам не нужно беспокоиться об этом. Пример:
[[email protected] frameworks]# ls -l /proc/self/exe
lrwxrwxrwx. 1 root root 0 Feb 14 18:00 /proc/self/exe -> /usr/bin/ls
Замечание 'ls' видит себя здесь. Различные процессы также будут видеть их полные пути.
Тогда вам нужно будет получить список смонтированных файловых систем (точно так же, как mount (1), используя getmntent (3)), и найти самый длинный путь точки монтирования (поле mnt_dir структуры ввода), которая является префиксом вашего имени exe. Это от mntent.h:
struct mntent {
char *mnt_fsname; /* name of mounted file system */
char *mnt_dir; /* file system path prefix */
char *mnt_type; /* mount type (see mntent.h) */
char *mnt_opts; /* mount options (see mntent.h) */
int mnt_freq; /* dump frequency in days */
int mnt_passno; /* pass number on parallel fsck */
};
Можете ли вы описать это немного больше, может быть, некоторые примеры? – user2687781
Просто добавленные примеры тоже. – Technologeeks
Удивительно, это здорово, но что я передаю как 'FILE * fp'? также, да, я на UNIX :) – user2687781
- 1. Исполняемый файл, содержащий данные
- 2. Постоянно исполняемый исполняемый файл
- 3. Оберните исполняемый файл в другой исполняемый файл
- 4. Назовите исполняемый файл c
- 5. Пакетный скрипт Windows, содержащий двоичный исполняемый файл
- 6. Какой исполняемый файл начал мой исполняемый файл?
- 7. C исполняемый файл для hex
- 8. Переместить текущий исполняемый файл C#
- 9. C исполняемый файл немедленно возвращается
- 10. Как узнать исполняемый исполняемый файл PHP?
- 11. Как создать исполняемый исполняемый файл Jar? (BlueJ)
- 12. Как создать исполняемый исполняемый файл (.exe) из кода C
- 13. Shell Program в C, исполняемый исполняемый файл в фоновом режиме
- 14. отсутствует исполняемый файл simscript
- 15. «исполняемый файл: команда не найдена», хотя «сделать исполняемый файл» удался
- 16. Невозможно создать исполняемый файл
- 17. Как перезаписать исполняемый файл?
- 18. Зачем нужен исполняемый файл
- 19. iPhone исполняемый файл
- 20. Отдельный исполняемый файл
- 21. Удаленный исполняемый пакетный файл, вызывающий внешний исполняемый файл
- 22. Невозможно загрузить исполняемый файл
- 23. C написать файл как исполняемый файл ASCII
- 24. Encode исполняемый файл
- 25. vb.net vs2008 пустой исполняемый файл
- 26. конвертировать существующий исполняемый файл applet intro исполняемый файл jar
- 27. Virtualenv в один исполняемый файл
- 28. C/C++ - исполняемый путь
- 29. C++ исполняемый программный тест
- 30. Вставить файл в исполняемый файл
argc [0] должен иметь полный исполняемый путь. Но тогда вам придется рыться вокруг с отображением этого исполняемого пути к смонтированным файловым системам –
Это на самом деле неправильно. Во-первых, вы имели в виду argv [0]. Во-вторых, у него не будет полного пути, если исполняемый файл не будет запущен как полный путь. Если он был запущен как ./ (из текущего каталога), у вас его не будет. – Technologeeks