Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Именованные каналы в Linux

260
30 марта 2005 года
Ramon
1.1K / / 16.08.2003
Люди кто-нибудь программировал именованные каналы в linux'е? Задача такая: Существуют два приложения одно из них является сервером именованного канала, а другое - клиентом, ну и соответственно они общаются по каналу. Пожалуста подкиньте примерчик сервера и клиента(желательно, чтобы клиент ожидал создания канала сервером и соответственно сервер ожидал подключения клиента).

Заранее благодарю за помощь.
2
30 марта 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Ramon
Пожалуста подкиньте примерчик сервера и клиента



Сервер:

Код:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <linux/stat.h>

#define FIFO       "SIMPLE_FIFO"

int main(void)
{
  FILE *fp;
  char buf[80];

  // создаем фифо
  umask(0);
  mknod(FIFO, S_IFIFO|0666, 0);
// запускаем сервер в прослушку
  while(1)
  {
    fp = fopen(FIFO, "r");
    fgets(buf, 80, fp);
    printf("Получена строка: %s\n", buf);
    fclose(fp);
  }
  return(0);
}

а вот клиент
Код:
#include <stdio.h>
#include <stdlib.h>

#define FIFO       "SIMPLE_FIFO"

int main(int argc, char *argv[])
{
  FILE *fp;

  if (argc != 2)
  {
     printf("USAGE: fifoclient <string>\n");
     exit(1);
  }
  if ((fp = fopen(FIFO, "w")) == NULL)
  {
     perror("fopen");
     exit(1);
  }
  fputs(argv[1], fp);
  fclose(fp);
  return(0);
}


Цитата:
желательно, чтобы клиент ожидал создания канала сервером и соответственно сервер ожидал подключения клиента


ну под свои условия переделаешь. скажу только, что если попытаться писать в канал, не имеющий читателя - сервера, программа выпадет в осадок по SIGPIPE.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог