こんにちは、すべての質問で申し訳ありませんが、このコードを実行すると、ターミナル ウィンドウに「セグメンテーション エラー (コア ダンプ)」が表示されます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int usage (void) {
printf("Usage: head <file>\n");
printf(" Or: head <file> -n <number of characters>\n");
printf(" Or: head -n <number of characters> <file>\n");
return -1;
}
int main (int argc,char **argv) {
if ((argc != 2) && (argc != 4)) return usage();
char *fileName = argv[1];
int lineCount = 10;
FILE *src;
if ((argc == 4) && (strcmp(argv[1], "-n" != 0))){
fileName = argv[1];
lineCount = argv[3];
puts("-n in last position");
}else{
fileName = argv[3];
lineCount = argv[1];
puts("-n in first position");
}
if((src = fopen(fileName, "r")) == NULL){
puts("Can't open input file.");
exit(-1);
}
}
fopen 関数によるものだと確信していますが、なぜこれが起こっているのか正確にはわかりません。