Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 28

При запуске "Ошибка сегментирования"

09.06.2015, 00:53. Показов 1312. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <netdb.h>
#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
#include <unistd.h>
 
// Порт сервера
#define PORTUM 1500
 
int main(int argc, char* argv[])
{
    int s;      // Идентификатор основного сокета
    int pid;    // ID процесса
 
    struct sockaddr_in serv_addr;
 
    struct hostent *hp;
    char buf[1000];
    FILE *files4 = fopen("in.txt","r");
    fgets(buf, 1000, files4);
    fclose(files4);
    /*Обрабатываем доменное имя хоста, полученное в качестве аргумента*/
    if ((hp = gethostbyname(argv[1])) == 0) {
        perror("Ошибка вызова gethostbyname()\n"); 
        return -1;
    }
 
    bzero(&serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = hp->h_addrtype;
    bcopy(hp->h_addr, &serv_addr.sin_addr, hp->h_length);
    serv_addr.sin_port = htons(PORTUM);
 
    /* Создаем сокет TCP*/
    if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
        perror("Ошибка вызова socket()\n"); 
        return -1;
    }else {
        printf ("Сокет с идентификатором %i успешно создан.\n", s);
    }
 
    /*Сообщение с указанием адреса сервера*/
    fprintf(stderr, "Адрес сервера: %s\n", inet_ntoa(serv_addr.sin_addr));
 
    /*Создаем канал*/
    if (connect(s, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1) {
        perror("Ошибка вызова connect()\n"); 
        return -1;
    }else {
        printf ("Соединение с сервером открыто, передача сообщения...\n", s);
    }   
 
    /*Отправим серверу сообщение*/
    send(s, buf, sizeof(buf), 0);
    if(recv(s, buf, sizeof(buf), 0) < 0) {
        perror("Ошибка вызова recv()\n"); 
        return -1;
    }else {
        puts("Получено сообщение от сервера");
        FILE *files5 = fopen("out.txt","w");
        fputs(buf, files5);  
        fclose(files5);
    }
 
    close(s);
    printf("Клиент завершил работу");
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2015, 00:53
Ответы с готовыми решениями:

Ошибка сегментирования при выводе меню
#include stdio.h #include stdlib.h typedef struct lib { int nomer; Номер читательского char last_name; фамилия ...

Ошибка сегментирования при использовании рекурсии
Суть проблемы в следующем: При функции со значением а(100) все работает отлично. Но как заставить функцию работать с числом миллион...

Ошибка сегментирования при сравнивании файлов
Задача выполеяется ,но невсегда. Выскакивает ошибка сегментирования! нудно задать два каталога и если в одном из них есть ещё один католог...

1
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
09.06.2015, 01:33
Ты не проверяешь, что in.txt открылся. Если он не открылся, то последующие вызовы зафейлятся.
И ты, возможно, не передаешь параметр своей программе - имя хоста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2015, 01:33
Помогаю со студенческими работами здесь

Ошибка сегментирования при чтении файла
Доброго дня! Компилирую обычный .cpp: g++ main.cpp. &quot;Ошибка сегментирования&quot; возникает при чтении данных из файла. А именно при выборе...

Ошибка сегментирования (core dumped) при обработке файла большого размера
Поблочно обрабытываю текстовый файл ~1,5 Гб, при достижении конца файла получаю: Ошибка сегментирования (core dumped). Использую...

Ошибка сегментирования
Данный код является частью большей программы. Кому интересно он возвращает массив структуры содержащий координаты и направление 10 наиболее...

Ошибка сегментирования
Здравствуйте. Пишу простенькую лабораторную работу со структурами. На мой взгляд всё в программе нормально, но в процессе выполнения...

Ошибка сегментирования
Подскажите пожалуйста, как выявить проблему. В моем случае проблема накапливается сутки гдето. Программа самописная. Исходники...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru