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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2014, 19:09   #1
sasha-inte
Новичок
Джуниор
 
Регистрация: 11.11.2014
Сообщений: 2
По умолчанию C++ Linux - Программа для UNIX

два процесса с разделенной памятью один процесс записывает строку в память другой после записи каждой строки выводит её на печать синхронизацию процесса осуществить с помощью симофора

Помогите пожалуйста с прогай
sasha-inte вне форума Ответить с цитированием
Старый 11.11.2014, 20:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я пони ксам ни бум бум, так что сорри )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2014, 22:04   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Я пони
Все мы немного пони в душе)

sasha-inte, весь код написать или помочь чем-то? Давай начало, дальше поможем, а иначе неинтересно
eoln вне форума Ответить с цитированием
Старый 11.11.2014, 23:09   #4
sasha-inte
Новичок
Джуниор
 
Регистрация: 11.11.2014
Сообщений: 2
По умолчанию

Помогите пожалуйста со всем кодом я вообще не разбираюсь в этом программирование пожалуйста
sasha-inte вне форума Ответить с цитированием
Старый 12.11.2014, 00:03   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Помогите пожалуйста со всем кодом я вообще не разбираюсь в этом программирование пожалуйста
побежал качать и ставить линукс!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.11.2014, 00:36   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Если вы вообще в этом не разбираетесь, может подумать о смене специализации? Пока не поздно...
p51x вне форума Ответить с цитированием
Старый 12.11.2014, 03:34   #7
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Пример на разделенную память: http://anton.troshin.name/?p=1251
Еще один пример на разделенную память и семафор: http://habrahabr.ru/post/122108/
Пример на семафор: http://linux.die.net/man/3/sem_wait

Заготовка кода
Код:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <semaphore.h>

#include <stdio.h>

/*
int shmget(key_t key, int size, int shmflg); /* получение дескриптора разделяемой памяти
char *shmat(int shmid, char *shmaddr, int shmflg); /*  включение области разделенной памяти в адресное пространство текущего процесса
int *shmdt(char *shmaddr); 
sem_t *sem_open(const char *name, int oflag, mode_t mode, unsigned int value); /* открытие семафора
*/

#define SEMAPHORE_NAME "/my_named_semaphore"

int main()
{
char *array; /* Указатель на разделяемую память */
int shmid; /* IPC дескриптор для области разделяемой памяти */
key_t key; /* IPC ключ */
sem_t *sem; /* семафор */
char pathname[] = "prog.c";  /* Имя файла, использующееся для генерации ключа. Файл с таким именем должен существовать в текущей директории */

key = ftok(pathname,0); /* получение ключа */
shmid = shmget(key, 3*sizeof(char), 0666|IPC_CREAT|IPC_EXCL);  /* получение дескриптора разделяемой памяти */
array = (char *)shmat(shmid, NULL, 0); /*  включение области разделенной памяти в адресное пространство текущего процесса */
sem = sem_open(SEMAPHORE_NAME, O_CREAT, 0777, 0); /* открытие семафора */

sem_wait(sem);

array[0] = 'c';
array[1] = 'd';
array[2] = '\0';

printf("%s\n", array);

sem_post(sem);

sem_close(sem); /* закрытие семафора */

shmdt(array); /* исключение области разделенной памяти */
return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 12.11.2014, 17:16   #8
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Все мы немного пони в душе)
Некоторые и снаружи тоже на пони смахивают ))
rrrFer вне форума Ответить с цитированием
Старый 12.11.2014, 21:22   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

От горе, ну очепятался )))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хук клавиатуры для Unix/Linux grotesk Помощь студентам 2 16.05.2011 12:58
Какими Linux/Unix дистрибутивами вы пользуйтесь?... Sota Операционные системы общие вопросы 15 04.06.2008 16:19