我有這個C程序從用戶獲取輸入並將其發送到一個方法:如何在C中使用UNIX終端輸入重定向?
#include <stdio.h>
#include <string.h>
#include "constants.h"
#include "lines.h"
#include "compare.h"
//gets arguments and sends to compare.c
int main() {
int op = 1;
char filename[20];
scanf("%d ", &op);
gets(filename);
if ((char) op + '0' < 49 || (char) op + '0' > 57) {
printf("Error: Invalid input");
exit(0);
}
readstdin(filename, op);
return 0;
}
而不是執行該程序並從stdin讀取但是,我希望它從UNIX終端讀取,使得:
./sort [field] < input_file
將讀入文件。 (如果沒有輸入,[字段]是選項,默認值爲1)。
例如執行在UNIX的C程序應該是這樣的命令:
./sort 1 < test.txt
我如何去這樣做呢?
任何幫助都非常熟悉 謝謝!
你想單獨傳遞文件名還是從命令行傳遞完整數據? –
文件名和字段從命令行,但我想文件名和字段作爲單獨的值 –
然後只需使用命令行參數。在main()中使用argc&argv –