Привет всем! Я написал прогу, получил объектный файл но при попытке его запустить мне выдается ошибка: Ошибка сегментирования. Вот код:
| Код | #include <time.h> #include <stdio.h> #include <string.h>
#define INFO_PATH "/root/info/calls.txt"
typedef struct _INFO_ { char pWho[30]; char pDateTime[30]; char pDirection[30]; } CALL_INFO ;
int main(int argc, char** args) { time_t now; time(&now);
FILE* infoFile = NULL;
if (argc == 0) { printf("Use syntax:\n\tto add record: pr set username direction\n\tto view: pr view\n"); return 0; }
if (strcmp(args[1], "set") == 0) { if (strlen(args[2]) == 0) printf("User name is missing!"); else if (strlen(args[3]) == 0) printf("Direction argument is missing!"); else { if ((infoFile = fopen(INFO_PATH, "a+")) == NULL) { printf("Unable to open info file in %s\n", INFO_PATH); return 1; }
CALL_INFO info; strcpy(info.pWho, args[2]); strcpy(info.pDirection, args[3]); strcpy(info.pDateTime, asctime(localtime(&now)));
fwrite(&info, sizeof(CALL_INFO), 1, infoFile);
fclose(infoFile); } } else if (strcmp(args[1], "view") == 0) { if ((infoFile = fopen(INFO_PATH, "r")) == NULL) { printf("Unable to open info file in %s\n", INFO_PATH); return 1; }
CALL_INFO info;
printf("Date\tWho\tCall Direction\n");
while (!feof(infoFile)) { fread(&info, sizeof(CALL_INFO), 1, infoFile); printf("%s\t%s\t%s\n", info.pDateTime, info.pWho, info.pDirection); }
fclose(infoFile); } else printf("Use syntax:\n\tto add record: pr set username direction\n\tto view: pr view\n");
return 0; }
|
Я только начинаю програмить под Unix, так что не судите строго если я где-то дал маху. Заранее спасибо. |