| Автор | Сообщение |
|
|
| |
Пост N: 703
Зарегистрирован: 17.06.10
|
|
Отправлено: 20.08.25 15:40. Заголовок: unistd.h
Приветствую ! Запускаю свое прогу на Linuxe под wine(portproton) Мне нужно узнать текущую паку. Есть стандартный запрос #include <stdio.h> #include <unistd.h> int main() { char cwd[1024]; if (getcwd(cwd, sizeof(cwd)) != NULL) { printf("Current working directory: %s\n", cwd); } else { perror("getcwd() error"); return 1; } return 0; } Однако, что бы скомпилиться мне нужен файл unistd.h. А где взять ?
|
 |

|
|
Ответов - 9
[только новые]
|
|
|
|
| moderator
|
Пост N: 1645
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.08.25 16:47. Заголовок: Если вы запускаете п..
Если вы запускаете под wine, значит программа компилируется под Windows? В этом случае вместо unistd.h дожен быть direct.h unistd.h - стандартный заголовочный файл в Линуксовом gcc. Если gcc установлен, то и unistd.h есть. Но это в том случае, если вы компилируете программу под Линуксом.
|
 |

|
|
|
| |
Пост N: 705
Зарегистрирован: 17.06.10
|
|
Отправлено: 20.08.25 17:23. Заголовок: Благодарю ! Есть так..
Благодарю ! Есть такой. Тогда я неправильно описываю функцию. Что это за третий интовый параметр у прототипа(_getdcwd) ? #pragma BEGINDUMP #include <windows.h> #include <hbapi.h> #include <direct.h> HB_FUNC( GETCWD ) { char cwd[1024] ; if (_getdcwd(cwd, sizeof(cwd)) != NULL) { hb_retc(cwd); hb_xfree(cwd); } #pragma ENDDUMP
|
 |

|
|
|
| |
Пост N: 706
Зарегистрирован: 17.06.10
|
|
Отправлено: 20.08.25 17:44. Заголовок: Сделал..
Сделал
|
 |

|
|
|
| |
Пост N: 707
Зарегистрирован: 17.06.10
|
|
Отправлено: 21.08.25 13:25. Заголовок: Александр, подскажит..
Александр, подскажите пожалуйста 1. как можно узнать домашний каталог юзера ? getenvv("HOME") вернет пусто ( могу узнать только имя юзера getenv("USER") ? 2. как из запустить скриптовый файл (под виндами я строю .bat файл и запускаю через Shell:Run А как в Linuxe, там же нет cmd) ?
|
 |

|
|
|
| moderator
|
Пост N: 1646
Зарегистрирован: 06.07.06
|
|
Отправлено: 21.08.25 16:06. Заголовок: Давайте определимся,..
Давайте определимся, мы говорим про непосредственно Линукс или про wine? Если про wine, то делать все надо как под Windows
|
 |

|
|
|
| |
Пост N: 708
Зарегистрирован: 17.06.10
|
|
Отправлено: 22.08.25 13:56. Заголовок: Прога на FW Запускаю..
Прога на FW Запускаю в Wine. Папку профиля юзера увидеть не могу. Пробовал lIsDir("C:\Users\"+WNetGetUsers()) ->.F. или lIsDir("C:\Users\"+getenv("USER"))) ->.F.
|
 |

|
|
|
| moderator
|
Пост N: 1649
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.08.25 16:10. Заголовок: Если вы под wine, за..
Если вы под wine, забудьте, что вы в Линуксе, используюте Windows методы. Переменные окружения: USERPROFILE, HOMEDRIVE, HOMEPATH. Ну и батник запускайте как обычно это делаете под Windows. В Линуксе нет cmd, а в wine - должен быть
|
 |

|
|
|
| |
Пост N: 709
Зарегистрирован: 17.06.10
|
|
Отправлено: 27.08.25 14:57. Заголовок: Можно ли из FW прогр..
Можно ли из FW программы запущенной под Wine запустить линуксовый терминал и выполнить в нем скрипт ?
|
 |

|
|
|
| |
Пост N: 63
Зарегистрирован: 06.03.24
|
|
Отправлено: 19.09.25 15:24. Заголовок: fil пишет: Можно ли..
fil пишет: | цитата: | | Можно ли из FW программы запущенной под Wine запустить линуксовый терминал и выполнить в нем скрипт ? |
| Попробуй #include <windows.h> int main(void) { WinExec("gnome-terminal -- bash -c \"/home/username/myscript.sh; exec bash\"", SW_SHOWNORMAL); return 0; } или #include <windows.h> int main(void) { // Открыть терминал и выполнить скрипт ShellExecute(NULL, "open", "gnome-terminal", "-- bash -c \"/home/username/myscript.sh; exec bash\"", NULL, SW_SHOWNORMAL); return 0; } или CreateProcess
|
 |

|
|