スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

sortコマンドの標準入力をリダイレクトして、ファイルから読み出せるようにしたプログラム。
ファイル名は、コマンド引数で指定する。

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

#define LENGTH_FILE_NAME 20

/*
* sortfromfile.c
*/
int main(int argc, char *argv[]){

int fd;
int newfd;
int pid;
char input_file[LENGTH_FILE_NAME];

/* check argument */
if(argc != 2){
printf("usage: sortfromfile inputfile\n");
exit(EXIT_FAILURE);
}


printf("About to run sort from a file\n");
//get input file name
strcpy(input_file, argv[1]);

/* create new process */
if((pid = fork()) == -1){
perror("fork error"); exit(EXIT_FAILURE);
}
/* child process */
if(pid == 0){
/* redirect stdin */
close(0); //close stdin
fd = open(input_file, O_RDONLY);
if(fd != 0){
fprintf(stderr, "Could not open data as fd 0\n");
exit(EXIT_FAILURE);
}
/* execute sort */
execlp("sort", "sort", NULL);
perror("execlp");
exit(EXIT_SUCCESS);
}
/* parent process */
if(pid != 0){
wait(NULL);
printf("Done running sort.");
}
}

スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。