170 похожих чатов

А как можно текущий процесс еще раз запустить с другими

аргументами?

14 ответов

40 просмотров

Аргументы командной строки получаешь из main или при помощи API OS. https://stackoverflow.com/questions/6256602/c-launch-new-process-and-terminate-existing-one

Слава- Автор вопроса
Дмитрий 🎮
Аргументы командной строки получаешь из main или п...

Такое ощущение, что есть много подводных. Например, может передаваться относительный путь. В ходе программы рабочая директория меняться и когда мы создаем процесс по этому относительному пути, то все разломается.

Слава
Такое ощущение, что есть много подводных. Например...

Да, есть такое, в моём случае хватает использования OS specific функций. Надо немного в google поискать и ты всё найдёшь. Уверен, ты не первый и не последний, кто задаётся этим вопросом. Надо поискать что-то из стандартной библиотеки C++, почитать какие есть гарантии и отталкиваться уже от них. Вроде как нет каких-то строгих гарантий, что будет находиться в argv. Может быть только имя исполняемого файла, а может, и полный путь до него.

Слава- Автор вопроса
Дмитрий 🎮
Да, есть такое, в моём случае хватает использовани...

GetModuleFileName есть, если кому-то интересно будет

Слава
Такое ощущение, что есть много подводных. Например...

а еще бинарь могут удалить или переименовать (по крайней мере на линуксе)

Mikail Bagishov
а еще бинарь могут удалить или переименовать (по к...

Вообще интересно, зачем ты хочешь запускать новый процесс с тем же бинарем, а не просто тред

Слава- Автор вопроса
Дмитрий 🎮
Но это только для windows.

Да. Может есть кроссплатформа, но мне и этого хватает

Слава- Автор вопроса
Mikail Bagishov
Вообще интересно, зачем ты хочешь запускать новый ...

Потому что я костыли поверх кривонаписанной программы пишу, потому что куча глобального стейта и желания с этим разбираться нет

Слава
Потому что я костыли поверх кривонаписанной програ...

Хочешь для лабы реализовать многопоточность на winapi без CreateThread? ... А, у тебя не этот случай.

Слава- Автор вопроса
Дмитрий 🎮
Хочешь для лабы реализовать многопоточность на win...

У меня прувер однопоточный, который писал другой студент года 4 назад. Мне надо запустить несколько инстансов прувера с разными настройками, но так как там ничего такого не предполагалось, то прувер в глобальный стейт пишет.

Слава
У меня прувер однопоточный, который писал другой с...

Почему бы не написать лаунчер хоть на питоне/баше/cmd вместо логики запуска самого себя?

Слава- Автор вопроса
Dmitriy [Отпуск]
Почему бы не написать лаунчер хоть на питоне/баше/...

Хотел потом данные шаренные прикручивать и логику усложнять.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта