博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
APUE_1.10ReadCommandsFromStandardInputAndExecuteThem
阅读量:5022 次
发布时间:2019-06-12

本文共 1356 字,大约阅读时间需要 4 分钟。

使用信号捕抓ctrl + c信号

/* * 1.10ReadCommandsFromStandardInputAndExecuteThem.cpp * *  Created on: Feb 11, 2015 *      Author: sunyj */#include "../apuesunyj.h"#include 
static void sig_int(int); // our signal-catching function,static limit this function in this fileint main(void){ char buf[MAXLINE]; pid_t pid; int status; if (signal(SIGINT, sig_int) == SIG_ERR) // catch the ctrl + c signal { err_sys("signal error"); } printf("%% "); /* print prompt (printf requires %% to print %) */ // ctrl + c invoke function sig_int, ctrl + d end this loop while (fgets(buf, MAXLINE, stdin) != NULL) { if (buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = 0; /* replace newline with null */ } if ((pid = fork()) < 0) { err_sys("fork error"); } else if (pid == 0) { /* child */ execlp(buf, buf, (char *) 0); err_ret("couldn't execute: %s", buf); exit(127); } /* parent */ if ((pid = waitpid(pid, &status, 0)) < 0) err_sys("waitpid error"); printf("%% "); } printf("EOF(ctrl + d) received\n"); printf("bye bye\n"); exit(0);}void sig_int(int signo){ printf("interrupt by signal ctrl + c \n%% ");}

 

转载于:https://www.cnblogs.com/sunyongjie1984/p/4286011.html

你可能感兴趣的文章
codeforces 446A DZY Loves Sequences
查看>>
Android四个基本组件(2)之Service 服务与Content Provider内容提供商
查看>>
关于未成品的问题:字符类型和其他种种
查看>>
TSQL--HASH JOIN
查看>>
『PyTorch』第九弹_前馈网络简化写法
查看>>
纯 CSS 绘制三角形(各种角度)
查看>>
你的袜子还是干的吗?
查看>>
POJ 2001 Shortest Prefixes(字典树)
查看>>
【Silverlight】汉诺塔游戏,带AI
查看>>
BigDecimal的引入和概述
查看>>
Oracle database server architecture
查看>>
StrictMode 详解
查看>>
JS中的几个弹出框用法及注意
查看>>
没忍住,听了rIPPER的,还是入手了个机械的
查看>>
linux rman shell
查看>>
struts2_Action之间的重定向传参
查看>>
网线接法
查看>>
LeetCode--Remove Duplicates from Sorted List
查看>>
(15)JavaScrip 的一些简单笔记
查看>>
右左法则解决复杂声明
查看>>