Доброго времени суток!
Не пойму в чем может быть проблема?
Что происходит при завершении процесса test.out (вообще говоря, должно передаваться упраление другой пограмме), который порождается программой a.out (исходник c++.cc), почему-то не передается управление «отцу». Это может быть какя-то проблема в библиотеки curses. Хотя я пробовал завершить ее. Пример который представлен ниже демонстрирует проблему. В этом примере должно напечататься «Hello, Unix! I’m glad to see you!» и именно на экране curses. Но этого не происходит.
//under FreeBSD
//filename: c++.cc
//to compile: c++ c++.cc -lncurses
#include
#include
#include
int main(void){
initscr();//инициализируем curses
addstr(«To start curses. Press any key…»);
getch();//задержка
/*эта часть была предложена в описании
curses для выхода в sheel и обратного возврата*/
//file:/usr/share/doc/ncurses/ncurses-intro.html#updating
//def_prog_mode();
//endwin();
execlp(«./test.out»,«test.out»,NULL);//порождение процесса
wait(NULL);
//refresh();
addstr(«Hello, Unix! I’m glad to see you!»);
getch();
endwin();
return 0;
}
//filename: cc.cc
//to compile: c++ cc.cc -o test.out
#include
int main(void){
getchar();//may be sleep(5) is in
return 0;
}
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
$ man execlp
The exec family of functions replaces the current process
image with a new process image.
Потому что нету больше отца… Пользуй fork()
Good Luck,
UT
Мне бы нужно, что бы потомок возвращал управление и не был копией отца, как в случае fork().
Как это можно осуществить?
man 3 system
Good Luck,
UT
Many thanks