標籤:c style class blog code java
#include <errno.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <stdlib.h>#include <string.h>#define BUFFER_SIZE 1024int main(int argc, char *argv[]){ int fd; char buffer[BUFFER_SIZE]; if(argc!=2) { fprintf(stderr,"Usage:%s outfilename\n\a",argv[0]); exit(EXIT_FAILURE); } if((fd=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR))==-1) { fprintf(stderr,"Open %s Error:%s\n\a",argv[1],strerror(errno)); exit(EXIT_FAILURE); } if(dup2(fd,fileno(stdout))==-1) { fprintf(stderr,"Redirect Standard Out Error: %s\n\a",strerror(errno)); exit(EXIT_FAILURE); } fprintf(stderr,"Now, please input string"); fprintf(stderr,"(To quit use CTRL+D)\n"); while(1) { fgets(buffer,BUFFER_SIZE,stdin); if(feof(stdin)) break; write(fileno(stdout),buffer,strlen(buffer)); } exit(EXIT_SUCCESS);}
ctrl-c 是發送 SIGINT 訊號,終止一個進程
ctrl-z 是發送 SIGSTOP訊號,掛起一個進程ctrl-d 不是發送訊號,而是表示一個特殊的二進位值,表示 EOF