2013-06-01 2 views
1

Как закрыть окно терминала Linux после выполнения моей программы на C?Закройте терминал после завершения выполнения

#include<stdio.h> 
void main() 
{ 
    int si,p,t,r; 
    printf("Enter p t r"); 
    scanf("%d %d %d",&p, &t, &r); 
    si = (p * t * r)/100; 
    printf("%d",si); 
    // after finishing task i want to close the terminal 
} 

После компиляции моей программы в терминале Ubuntu, я бег моей программы:

./a.out 

После выполнения моей программы, терминал должен закрыть автоматически. Как это сделать?

+0

Подробнее о 'batch',' cron', 'at' .. Вам, вероятно, нужны некоторые из них. –

ответ

2

Сообщите своей оболочке выполнить программу вместо ее запуска, чтобы она заменила оболочку.

exec ./a.out 
+0

Могу ли я закрыть терминал, написав несколько строк внутри моей программы? –

+3

Вы можете попробовать несколько обратных фолов и некоторые глупые трюки кода, но неизбежно наступит день, когда все будет ужасно, ужасно неправильно. –

1

Для Баша терминала

./a.out && exit 
+0

Это работает только в том случае, если команда завершается с 0 – LtWorf

+1

Но если код выхода команды не равен 0, что-то не так, и вы, вероятно, хотите, чтобы терминал оставался открытым в этом случае ... –

-1

попробовать написать системы ("выход") в качестве последней строки в коде. Я пробовал системы («cls») на mingw и работал

+3

Этот ответ показывает неспособность понять основной принцип 'system()'. –

+0

@Ignacio Vazquez-Abrams У меня нет большой идеи относительно этого, но мы не можем использовать системные вызовы в таком коде. Можете ли вы рассказать, где и когда следует использовать системные вызовы? – Daemon

+0

'system()' открывает новую оболочку. Его следует использовать только в ситуациях с «огнем и забыть», когда необходимо выполнить внешнюю команду, которая не будет иметь прямого влияния на программу. –

Смежные вопросы