Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка сегментирования, Ошибка при исполнении файла 
V
    Опции темы
criolit
  Дата 4.8.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 29.6.2006

Репутация: нет
Всего: нет



Привет всем!
Я написал прогу, получил объектный файл но при попытке его запустить мне выдается ошибка: Ошибка сегментирования. Вот код:
Код

#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, так что не судите строго если я где-то дал маху.
Заранее спасибо.

Это сообщение отредактировал(а) criolit - 4.8.2006, 12:52
PM MAIL   Вверх
criolit
  Дата 4.8.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 29.6.2006

Репутация: нет
Всего: нет



Ох я намудрил. Ошибка вот где:
Код

// было
if (argc == 0) {
...
}

// правильно
if (argc == 1) {
...
}


Вопрос закрыт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.