Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 03:25   #1
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию Ошибка на С

компилирую проект,ерор такой
Код:
server.c: In function ‘main’:
server.c:186:22: error: storage size of ‘cancel_act’ isn’t known
Функция main
Код:
int main(int argc, char** argv) {
    // Аргумент может быть только один - это кол-во тредов
    if(argc > 2) {
        fprintf(stderr, "Usage: %s [numofcpus]\n", argv[0]);
        exit(EXIT_FAILURE);
    } 
    
    int numofthread;
    
    if(argc == 2) {
        numofthread = atoi(argv[1]);
        if(numofthread < 1) {
            fprintf(stderr, "Incorrect num of threads!\n");
            exit(EXIT_FAILURE);
        }
        fprintf(stdout, "Num of threads forced to %d\n", numofthread);
    } else {
        // Если аргументов нет, то определяем кол-во процессоров автоматически
        numofthread = sysconf(_SC_NPROCESSORS_ONLN);
        if(numofthread < 1) {
            fprintf(stderr, "Can't detect num of processors\n"
                    "Continue in two threads\n");
            numofthread = 2;
        }
        fprintf(stdout, "Num of threads detected automatically it's %d\n\n", 
                numofthread);
    }
    
    struct sigaction cancel_act;
    memset(&cancel_act, 0, sizeof(cancel_act));
    cancel_act.sa_handler = thread_cancel;
    sigfillset(&cancel_act.sa_mask);
    sigaction(SIGUSR1, &cancel_act, NULL);
    
    // Сооздаем тред слушающий broadcast'ы
    pthread_t broadcast_thread;
    int isbusy = 1;//(int*) malloc(sizeof(int));
    // Переменная которая сообщает треду следует ли отвечать на broadcast
    // 0 - отвечать, 1- нет
    isbusy = 1;
    if(pthread_create(&broadcast_thread, NULL, listen_broadcast, &isbusy)) {
        fprintf(stderr, "Can't create broadcast listen thread");
        perror("Detail:");
        exit(EXIT_FAILURE);
    }
    

    ....
}
Ну и собственно видимо не нравится в ней это место
Код:
  struct sigaction cancel_act;
    memset(&cancel_act, 0, sizeof(cancel_act));
Подскажите пожалуйста как исправить.
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 26.05.2013, 11:23   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Ну и собственно видимо не нравится в ней это место
Если это - 186 строка, то да. Напишите sizeof(struct sigaction), вполне может быть, что синтаксис sizeof(переменная) не поддерживается компилятором.
Abstraction вне форума Ответить с цитированием
Старый 26.05.2013, 15:15   #3
Дима я
Форумчанин
 
Регистрация: 06.06.2009
Сообщений: 259
По умолчанию

186 строка это
Код:
 struct sigaction cancel_act;
написал
Код:
struct sigaction cancel_act;
memset(&cancel_act, 0, sizeof(struct sigaction));
Тоже самое ругается на 186 и теперь еще на следующую((
Если я тебе помог Ты бы + влепить мне мог.
Дима я вне форума Ответить с цитированием
Старый 26.05.2013, 16:41   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
186 строка это
Код:
 struct sigaction cancel_act;
А. И это единственная ошибка? Странно.
Проверьте, точно ли включено определение struct sigaction.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26