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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параллельное программирование на Си 
V
    Опции темы
margo1111
Дата 23.6.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, мне необходимо написать программу для управления модемом, данный модем может передавать информацию по трем каналам одновременно, я написала программу для одного канала, но не знаю как создать три канала и чтобы они фунционировали независимо от друг друга, и была возможна одновременная передача-прием по разным каналам. Подскажите, пожалуйста, а то уже никаких идей нет.... 
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



1. использовать асинхронный ввод-вывод.
2. использовать потоки.

PM WWW   Вверх
margo1111
Дата 23.6.2012, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А какие команды для этого необходимы, я то везде пишут про стандартные потоки ввода-вывода?
PM MAIL   Вверх
magesi
Дата 23.6.2012, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  12:56)
А какие команды для этого необходимы, я то везде пишут про стандартные потоки ввода-вывода?

секвенция в паре с венъюнкицей - это если, как иммитировать асинхронную логику, или Вы не про это, если не, то про что именно?

Это сообщение отредактировал(а) magesi - 23.6.2012, 14:30
PM MAIL   Вверх
Alexeis
Дата 23.6.2012, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(margo1111 @  23.6.2012,  13:56 Найти цитируемый пост)
я то везде пишут про стандартные потоки ввода-вывода? 

Вот такой запрос попробуйте http://www.google.md/search?q=%D0%BC%D0%BD...;client=firefox


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
magesi
Дата 23.6.2012, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Alexeis @ 23.6.2012,  13:07)
Цитата(margo1111 @  23.6.2012,  13:56 Найти цитируемый пост)
я то везде пишут про стандартные потоки ввода-вывода? 

Вот такой запрос попробуйте http://www.google.md/search?q=%D0%BC%D0%BD...;client=firefox

она про чистый Си, а не Си++ аськнула вроде
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



margo1111, каким способом твой программа "общается" с модемом?

PM WWW   Вверх
magesi
Дата 23.6.2012, 13:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @ 23.6.2012,  13:13)
margo1111, каким способом твой программа "общается" с модемом?

Да, это интересно smile

еще какая ОС

если Венда, то COM-обеъкты в помощь и там куча всего готового
в *nix, я что-то вразумительного работающего не нашел, пришлось все самому ручками

а может она, вообще пишет нативный код под x86 , SPARC (без ОС)?  smile 

Это сообщение отредактировал(а) magesi - 23.6.2012, 13:55
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(magesi @ 23.6.2012,  13:06)
секвенция с паре с венъюнкицей - это если, как иммитировать асинхронную логику, или Вы не про это, если не, то про что именно?

сразу говорю, программированием на Си занялась совсем недавно, и не совсем понимаю то такое и для чего нужен асинхронный ввод-вывод в данном случае, а понятие потоков тоже такое смутное, только догадки

Добавлено @ 14:06
Цитата(magesi @ 23.6.2012,  13:12)
Цитата(Alexeis @ 23.6.2012,  13:07)
Цитата(margo1111 @  23.6.2012,  13:56 Найти цитируемый пост)
я то везде пишут про стандартные потоки ввода-вывода? 

Вот такой запрос попробуйте http://www.google.md/search?q=%D0%BC%D0%BD...;client=firefox

она про чистый Си, а не Си++ аськнула вроде

я пишу программу для Turbo C 2.01

Добавлено @ 14:11
Цитата(boostcoder @ 23.6.2012,  13:13)
margo1111, каким способом твой программа "общается" с модемом?

через LPT-порт, ОС - windows. 

Это сообщение отредактировал(а) margo1111 - 23.6.2012, 15:25
PM MAIL   Вверх
magesi
Дата 23.6.2012, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @  23.6.2012,  14:05 Найти цитируемый пост)
сразу говорю, программированием на Си занялась совсем недавно

а это не Си, секвенция с венъюнкцией - общая идея асинхронности ( логика ), вы хоть на bash ее можете иммитировать


Цитата(margo1111 @  23.6.2012,  14:05 Найти цитируемый пост)
через LPT-порт, ОС - windows.

А точно Венда, а не DOS?

PS
Вам бы про while(true) { break; } а также про switch/case почитать бы, да и про многое другое тоже

Цитата(margo1111 @  23.6.2012,  14:05 Найти цитируемый пост)
я пишу программу для Turbo C 2.01

на турбо, а не для турбо

Вы пишите на турбо для работы с модемом

Вы бы лучше бы Ваш код заключили в тэг [code]

Это сообщение отредактировал(а) magesi - 23.6.2012, 14:26
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я понимаю, что мне многое надо почитать))) написала через те команды, которые знаю и понимаю) а всякие заумные слова связанные с асинхронной логикой тоже трудны для моего понимания....Но проблема от этого не решается....
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  14:30)
Я понимаю, что мне многое надо почитать))) написала через те команды, которые знаю и понимаю) а всякие заумные слова связанные с асинхронной логикой тоже трудны для моего понимания....Но проблема от этого не решается....


Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>

static char buffer[0x400];
static DWORD dw;
static OVERLAPPED ov;

int main(void)
{

    HANDLE hLPT = CreateFile(L"LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    if(hLPT != INVALID_HANDLE_VALUE)
    {
        printf("OK! Open LPT1...\r\n");
 
        strcpy(buffer, "Hello LPT!\r\n");
        WriteFile(hLPT, buffer, sizeof(buffer), &dw, &ov);
        CloseHandle(hLPT);
    }
    else
    {
        printf("Error open!\r\n");
        return 1;
    }

    return 0;    
}



Вы бы уточнили , какая именно у Вас версия Windows ( именно Windows , а не DOS ли это )?

А то , Вы заголовком dos.h и доисторической версией компилятора Си на мысль наводите, что Вы на какой-нибудь =~ Windows 3.1 сидите, да и LPT порт....

Цитата(margo1111 @  23.6.2012,  14:05 Найти цитируемый пост)
Эта программа для того чтобы организовать 1 канал передачи, у меня их три....как сделать три независимо протекаемх процесса, вот в чем мои мучения... 

учите , что такое семафор

Это сообщение отредактировал(а) magesi - 23.6.2012, 14:54
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Windows 95, действительно доисторический))
PM MAIL   Вверх
magesi
Дата 23.6.2012, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  14:51)
Windows 95, действительно доисторический))

Лаба в универе, что ли?
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое за такое внимание к моей проблеме, пытаюсь пока что понять, все что Вы мне сказали...

Добавлено через 1 минуту и 4 секунды
Цитата(magesi @ 23.6.2012,  14:53)
Цитата(margo1111 @ 23.6.2012,  14:51)
Windows 95, действительно доисторический))

Лаба в универе, что ли?

Почти лаба....
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  14:54)
Спасибо большое за такое внимание к моей проблеме, пытаюсь пока что понять, все что Вы мне сказали...

Добавлено @ 14:55
Цитата(magesi @ 23.6.2012,  14:53)
Цитата(margo1111 @ 23.6.2012,  14:51)
Windows 95, действительно доисторический))

Лаба в универе, что ли?

Почти лаба....

Попробуйте такой код на Вашем турбо , тогда , для отображения содержимого регистра по состоянию параллельного порта.

Код

#define PORT 0x378

#include <stdio.h>
#include <conio.h>
#include <dos.h>

static int data;

int main(void)
{
    clrscr();
    
    while(!kbhit())
    {
        data = inportb(PORT + 1);
        
        gotoxy(3, 0xa);
        
        printf("Доступные данные на регистрах: %3d | %3X\r\n", data, data);
        printf("\r\n Pin 15: %d", (data & 0x08) / 0x08);
        printf("\r\n Pin 13: %d", (data & 0x10) / 0x10);
        printf("\r\n Pin 12: %d", (data & 0x20) / 0x20);
        printf("\r\n Pin 11: %d", (data & 0x80) / 0x80);
        printf("\r\n Pin 10: %d", (data & 0x40) / 0x40);
        
        delay(0xa);
    }
    
    return 0;
}



Чтобы узнать наличие и адреса LPT порта на компьютере.

Код

#include <stdio.h>
#include <dos.h>

static unsigned int far *ptraddr;
static int address;
static int a;

int main(void)
{
    ptraddr = (unsigned int far*)0x00000408;
    
    clrscr();

    for(a = 0; a < 3; a++)
    {
        address = *ptraddr;
        
        if (address == 0)
        {
            printf("Не найдено порта для LPT %d\r\n", a + 1);
        }
        else
        {
            printf("Адрес порта для LPT%d is 0x%X \n", a + 1, address);
            ptraddr++;
        }
    }
    
    getch();
    
    return 0;
}


Это сообщение отредактировал(а) magesi - 23.6.2012, 15:11
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(magesi @ 23.6.2012,  14:40)
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>

static char buffer[0x400];
static DWORD dw;
static OVERLAPPED ov;

int main(void)
{

    HANDLE hLPT = CreateFile(L"LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    if(hLPT != INVALID_HANDLE_VALUE)
    {
        printf("OK! Open LPT1...\r\n");
 
        strcpy(buffer, "Hello LPT!\r\n");
        WriteFile(hLPT, buffer, sizeof(buffer), &dw, &ov);
        CloseHandle(hLPT);
    }
    else
    {
        printf("Error open!\r\n");
        return 1;
    }

    return 0;    
}


Эх...не сочтите за наглость...не могли бы Вы объяснить каждую строчку данной программы.....что она делает именно...буду оч благодарна...
PM MAIL   Вверх
magesi
Дата 23.6.2012, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



margo1111, устройство в ОС может представляться в файла, а далее читайте msdn/гуглите правильными запросами, к примеру:

LPT C++ Windows
LPT C++
LPT C++ Windows howto
LPT CreateFile C++
LPT TurboC Windows 95

Что я могу Вам комментировать? Виндовые ф-ции из WinAPI , как CreateFile() / WriteFile() / CloseHandle() или стандартные из Сишной либы, как strcpy() ?

Здесь, в руки гугл конкретных ф-ций и что они делаеют читать и пробывать.... что Вы могли не знать, я в 1-ой строчке сказал, остальное читается самим

PS
Потом Вы не на этот код смотрите лучше, у Вас с Вашим старым TurboC будут проблемы с #include заголовка <Windows.h>
Я Вам привел дальше код, конкрертно под Ваш старый компилер 10летней давности и Windows95

Это сообщение отредактировал(а) magesi - 23.6.2012, 15:27
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(magesi @ 23.6.2012,  15:22)
margo1111, устройство в ОС может представляться в файла, а далее читайте msdn/гуглите правильными запросами, к примеру:

LPT C++ Windows
LPT C++
LPT C++ Windows howto
LPT CreateFile C++
LPT TurboC Windows 95

Что я могу Вам комментировать? Виндовые ф-ции из WinAPI , как CreateFile() / WriteFile() / CloseHandle() или стандартный из Сишной либы, как strcpy() ?

Здесь, в руки гугл конкретных ф-ций и что они делаеют читать и пробывать.... что Вы могли не знать, я в 1-ой строчке сказал, остальное читается самим

ок...ещё раз ОГРОМНОЕ СПАСИБО!
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



блин...все равно не понимаю, как организовать 3 независимых канала приема-передачи...
PM MAIL   Вверх
magesi
Дата 23.6.2012, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  15:40)
блин...все равно не понимаю, как организовать 3 независимых канала приема-передачи...

Вы про семафор почитали?
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(magesi @ 23.6.2012,  15:41)
Цитата(margo1111 @ 23.6.2012,  15:40)
блин...все равно не понимаю, как организовать 3 независимых канала приема-передачи...

Вы про семафор почитали?

да, там про какую то блокировку все пишут....может не то читаю...или совсем уж неумная
PM MAIL   Вверх
magesi
Дата 23.6.2012, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @  23.6.2012,  15:51 Найти цитируемый пост)
да, там про какую то блокировку все пишут....может не то читаю...или совсем уж неумная 

Вы не по-диагонали читайте... блокировка связана с построением очереди из потоков на обсуживание не более, чем опред. кол-ву потоков в модели семафора, как раз наиболее чаще используемая модели для асинхронности , которая применяется много где, для доступа потоков к файлам, при операциях с сокетами



Это сообщение отредактировал(а) magesi - 23.6.2012, 15:56
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



magesi, margo1111, стоп!

margo1111, турбо С-2.0 - это DOS.
он не умеет компилировать для windows. он и WINAPI вряд ли поддерживает.
Вы уверены, что задача не для DOS?

PM WWW   Вверх
magesi
Дата 23.6.2012, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



boostcoder, а я что говорил? я ей сначала написал для Венды код, потом спросил не dos ли у нее и привел уже код для dos? Что мне-то стоп?  smile 

Цитата(boostcoder @  23.6.2012,  16:17 Найти цитируемый пост)
он не умеет компилировать для windows. он и WINAPI вряд ли поддерживает.

я про это писал уже, тут:

Код

Вы бы уточнили , какая именно у Вас версия Windows ( именно Windows , а не DOS ли это )?

А то , Вы заголовком dos.h и доисторической версией компилятора Си на мысль наводите, что Вы на какой-нибудь =~ Windows 3.1 сидите, да и LPT порт....



после чего уже привел для dos код и прокомментировал насчет <windows.h>

Код

PS
Потом Вы не на этот код смотрите лучше, у Вас с Вашим старым TurboC будут проблемы с #include заголовка <Windows.h>


ко мне-то какие претензии?  smile 

Это сообщение отредактировал(а) magesi - 23.6.2012, 16:21
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(magesi @  23.6.2012,  16:18 Найти цитируемый пост)
Что мне-то стоп?

слишком много информации даешь для неокрепшего ума.

Добавлено через 51 секунду
Цитата(magesi @  23.6.2012,  16:18 Найти цитируемый пост)
я про это писал уже, тут

я прочел топик по диагонали)

PM WWW   Вверх
magesi
  Дата 23.6.2012, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  23.6.2012,  16:21 Найти цитируемый пост)
слишком много информации даешь для неокрепшего ума.

Неокрепший ум пытается модем поиметь через LPT  smile 
Еще чуть-чуть бы про ring0 и при помощи прерываний получать битики  smile будет спрашивать

PS
Кстати, ты не мог бы в мою соседнюю тему глянуть  smile а то у меня там секс Сях с Lua через Венду 
Спасибо тебе, заранее!  smile 

Это сообщение отредактировал(а) magesi - 23.6.2012, 16:33
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



magesi, я под венду не писал уже года четыре. забыл все напрочь smile 
PM WWW   Вверх
magesi
Дата 23.6.2012, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



boostcoder, я в апоже  smile даже на StackOverflow мне не помогли.... мдя, пошел напьюсь... с девушкой расстался, теперь еще Винда не дает  smile жизнь - г*вно, что ли не *nix перейти , начну жизнь с нового листа  smile 
PM MAIL   Вверх
EvilsInterrupt
Дата 23.6.2012, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Цитата

жизнь - г*вно, что ли не *nix перейти , начну жизнь с нового листа

Не поверишь, там еще тяжелее, что не шаг, то сразу надо юзать команду man или смотреть в /usr/share/example/
PM MAIL WWW ICQ Jabber   Вверх
magesi
  Дата 23.6.2012, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



EvilsInterrupt, там это где? где нет: COM/DCOM/COM+ для нормального общения с железками? там где когерентность процессов в Апоже? Там где непонятно по каким принципам были выбраны структуры для данных? где выбраны были на самые лучшие алгоритмы по асимптоте? где нет прослойки нормальной между ring0 && ring3 ( которая в 7 и 8 винде есть ), там где тонна goto в исходниках ядра, где не требуется совершенно? ты про этот [англ.]crap? )

Под *nix много, что понимается, даже такая экзотика, как Plan9 , где нет рутов... А можно заняться сексом с Minix smile  я же о конкретных планах не рассказал

PS
Офигеешь , но в Винде тоже маны есть!

Через /? | more  smile да и последних конослях, аля poweshell на man не скупились, даже, как *nix вызывается.

А что, для Венды читать надо меньше?  smile Что только работа с COM-объектами стоит с подсчетом ссылок.  smile 

ты попробуй нативно без всяких COM-объектов с usb взять битик хоть в Винде новой ( 7-8 ), т.е. без применения всякого готового ( libusb ( хотя это не работает нормально ), COM и прочего... ), это гораздо тяжелее будет, чем под *nix

boostcoder, потом для ее цели уже был дан и код по dos и turbo c с 2-умя ключевыми моментами по работе с LPT, и сказали про семафор  smile 

Я бы помог, все реализовать до коцна, но сейчас под рукой Windows 95 и модема с LPT портом ( да и LPT порта на компе ) - нету  smile 

Да и наверное, и у нее нет, это только в доисторическом универе экспонат остался такой, там наверное конкретно тестить и можно только.

Это сообщение отредактировал(а) magesi - 23.6.2012, 17:04
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(magesi @  23.6.2012,  16:42 Найти цитируемый пост)
EvilsInterrupt, там это где? где нет: COM/DCOM/COM+ для нормального общения с железками? там где когерентность процессов в Апоже? Там где непонятно по каким принципам были выбраны структуры для данных? где выбраны были на самые лучшие алгоритмы по асимптоте? где нет прослойки нормальной между ring0 && ring3 ( которая в 7 и 8 винде есть ), там где тонна goto в исходниках ядра, где не требуется совершенно? ты про этот [англ.]crap? )

под *nix много, что понимается, даже такая экзотика, как Plan9 , где нет рутов и можно заняться сексом с Minix   я же о конкретных планах не рассказал

может тебе в холивары?
странно подобное слышать от человека не работающего с линукс. это по принципу "верю во все что мне говорят" ?

PM WWW   Вверх
margo1111
Дата 23.6.2012, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дос не дос, фиг знает))) разберусь сама потом, мне главное логику понять всего этого. Про семафоры, как я поняла: может находитс в трех состояниях: положит, отриц, нуль, типа прибавляет или вычитает значения для того чтобы определит состояние занят или свободен,  в моем случае необходимо создать 3 канала передачи, занято свободно мне этот факт не важен, мне просто надо чтобы одновременно по двум каналам я смогла передать различную информацию. Смысл в том что модем сделан на основе микросхемы которая рассчитана на передачу по трем каналам, но в типовой схеме её включения без LC-фильтра по расчетам переходного затухания качественная информация одновременно по нескольким каналам невозможна, так как большое влияние соседних каналов, я ставлю этот фильтр, и с ним эта передача по нескольким каналам должна быть(опят же по расчетам) возможна. Так при передаче информации я ввожу сетевой адрес модема, который должен принять эту информацию и несущую частоту, занят этот канал или нет мне неважно, я буду делать так что он свододен и от программы этого узнавать не требуется. Мне просто с помощью программы надо как то параллельно подать информацию на два канала, то есть задать параллельно два несущие частоты. Возможно ли это осуществить с помощю семафоров? 
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



margo1111, забудь про семафоры. в DOS`е их нет.
для начала определись, под какую ОС задачу решать нужно?

PM WWW   Вверх
margo1111
Дата 23.6.2012, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(magesi @ 23.6.2012,  16:42)
Да и наверное, и у нее нет, это только в доисторическом универе экспонат остался такой, там наверное конкретно тестить и можно только.

Именно!!
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  23.6.2012,  17:04 Найти цитируемый пост)
может тебе в холивары?странно подобное слышать от человека не работающего с линукс. это по принципу "верю во все что мне говорят" ?

Почему, ты думаешь , что я не работал?  smile 

Мне уже под Android приходилось писать драйвер по работе с веб-камерой на NDK ( причем самые первые версии Андроида, когда еще попсовая Java там была , и все нормальное через NDK делали, и через JNI уже отдавали в Java , что рисовать на выходе ), и с ДПХ/алгоритмом Хаффмана приходилось имплементировать.

Работал я там, нет там нормального ничего ( по крайней мере не было, что на подобии легкого общения с железами, как: COM у Венды ), libusb и всякие 3-rd party самодельные либы, были полурабочим ( а порой и нерабочим ) куском, поэтому приходилось отказываться.

А что там  есть нормальная защита от проникования в ring0? или ядро переписали в нормальный вид? что-нибудь из этого сделали, именно 100% рабочим, а не черновые вар-ты?

Добавлено @ 17:10
Цитата(boostcoder @  23.6.2012,  17:07 Найти цитируемый пост)
margo1111, забудь про семафоры. в DOS`е их нет.

а с чего их нет? mutex/spinlock там что ли? ( в целом это в какой-то мере и есть упрощенный семафор )

а кто ей мешает самой модель семафора организовать?

Цитата(boostcoder @  23.6.2012,  17:07 Найти цитируемый пост)
для начала определись, под какую ОС задачу решать нужно?

win95 у них там, она уже писала

Цитата(boostcoder @  23.6.2012,  17:04 Найти цитируемый пост)
 это по принципу "верю во все что мне говорят" ? 

а вера при чем тут? что из того, что я перечислил, не совпадает? что они стали теперь даже данные хранить в нормальных структурах данных? Выбирая примитивные бинарные деревья, и не выбирая нормальные структуры данных для той или иной операции

ты исходы открывал всяких GNU-проектов, я всегда шалел, почему там не могу даже нормальные алгоритмы по сортировки выбирать?

возьми исходники FireFox , аж в комментах написано, что через g++ компилиться, код выглядит, как чисто сишный ( причем и для чистого си - плохой ), много goto ( причем с goto это болезнь какая-то у практически всех GNU проектов любого уровня сложности ), много где указатели в виде типа возвр. описаны ( за что можно смело насиловать ), в качестве алгоритма сортиворки merge sort ( слиянием ), а почему не Хоара ( quick sort ), это нормально? И такое безобразие в GNUшных проектах практически везде... Будет это ОС, браузер, интепретатор, редактор 3Д без разницы... Везде один раздолбайский стиль проектов, как будто бы писали на коленках и на скорости

стиль программирования какой там во многих проектах? да за такой, код в конторах руки оторвут

Это сообщение отредактировал(а) magesi - 23.6.2012, 17:31
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 17:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



не стану комментировать. попросил модератора перенести в холивары.

PM WWW   Вверх
EvilsInterrupt
Дата 23.6.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



boostcoder, Лучше бы на хабр
PM MAIL WWW ICQ Jabber   Вверх
magesi
Дата 23.6.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  23.6.2012,  17:20 Найти цитируемый пост)
не стану комментировать. 

стань  smile только в личку или действительно в холиварах продолжим, хотя я не сторонник ни Венды, ни *nix я больше  smile сторонник 
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сама прочитала, что Turbo C 2.0 для DOS предназначена, но там ОС Windows 95, и поскольку Turbo C 2.0 там стоит, то значит, что все работает. Возможно ли такое?   
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



EvilsInterrupt, я уже на хабре по похожей теме отписывался, ничего вразумительного *nix-сторонники не ответили ( собственно за что там отвечать, если там ничего нет  smile практически )

тоже так обижались, ничего толком не сказали конкретного, обрывистами фразами "промолчу" а как дело до конкретики, так сразу  smile и в итоге ничего сказано не было нормального для восприятия и что-то существенного

и потом уже много офиц. тестов уже проводили , Венда уделыает по производительности во многим сегментах и в embedded и др., уж с этим спорить тоже будете или как? )

Добавлено @ 17:41
Цитата(margo1111 @  23.6.2012,  17:40 Найти цитируемый пост)
Сама прочитала, что Turbo C 2.0 для DOS предназначена, но там ОС Windows 95

9x Венда на dos базируется

Это сообщение отредактировал(а) magesi - 23.6.2012, 17:52
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Т.е. мне программу над писать на DOS, а в DOSe семафоров нет....и опять ничего непонятно.... smile 
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



margo1111, семафор - это абстрактная модель/объект с опред. свойствами и методами

где-то она изначально вшита и по ней работают, где-то нет... при работе с сокетами, люди и сейчас зачатую сами иммитирует семафоры вручную, Вы также можете но в отношении работы с модемом

Цитата(margo1111 @  23.6.2012,  17:55 Найти цитируемый пост)
Т.е. мне программу над писать на DOS, а в DOSe семафоров нет....и опять ничего непонятно....

изначально на компе вообще ничего нет, но люди живут пишут ОС, файловые системы, драйвера всякие к ус-вам и визуализацию, когда изнчально ничего нет, в чем проблема?  smile 

Это сообщение отредактировал(а) magesi - 23.6.2012, 18:04
PM MAIL   Вверх
margo1111
Дата 23.6.2012, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а можно хотя бы пример, а то сама точно не додумаюсь...
PM MAIL   Вверх
magesi
  Дата 23.6.2012, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(margo1111 @ 23.6.2012,  18:03)
а можно хотя бы пример, а то сама точно не додумаюсь...

Написал крайне примитивный пример на псевдо коде ( но идею понять можно, да и на Вики хорошо про семафор расписано )

Код

#define MAX_RETRIES 4

static int count;

class Semaphore
{
private:
    key_t key;
    int nSems;
    int semid;

    int initSem();

public:
    Semaphore(int);

    void getLock();

    void ReleaseLock();
};

void Semaphore::getLock(thread **obj, int *count)
{
    if(check(&obj) == -1 && *count >= MAX_RETRIES)
    {  
        std::cout << "нельзя сделать блокировку";
    }
    else
    {
         *count++;
    }
}

void Semaphore::ReleaseLock(thread **obj)
{
    if(check(&obj) == -1)
    {  
        std::cout << "нельзя реализовать блокировку";
    }
    else
    {
         *count--;
    }

}

int main(void)
{
    Semaphore *sem = new Semaphore(1);

    for(int i = 0; i < 1000; i++)
    {  
        sem->getLock();
        sem->ReleaseLock();
    }

    return 0;
}



Это сообщение отредактировал(а) magesi - 23.6.2012, 20:38
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



жуть, насколько все не лаконично  smile 
Код

int Semaphore::getLock(thread **obj, int *count)
{
   return (check(&obj) == -1 && *count >= MAX_RETRIES)
      ? -1
      : (++(*count), 0)
   ;
}
int Semaphore::ReleaseLock(thread **obj)
{
    return (check(&obj) == -1)
      ? -1
      : (--(*count), 0)
   ;
}

PM WWW   Вверх
magesi
  Дата 23.6.2012, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @ 23.6.2012,  18:26)
жуть, насколько все не лаконично  smile 
Код

int Semaphore::getLock(thread **obj, int *count)
{
   return (check(&obj) == -1 && *count >= MAX_RETRIES)
      ? -1
      : (++(*count), 0)
   ;
}
int Semaphore::ReleaseLock(thread **obj)
{
    return (check(&obj) == -1)
      ? -1
      : (--(*count), 0)
   ;
}

И что ты тернарным оператором меня дразнишь?  smile  эти понты уже в прошлом, отладка с тернарным оператором крайне неудобна, да и компилятор все равно порежет код, как ему надо и приведет в итоге к тому же, что если бы было бы просто if-else с фигурными { }  smile я чисто для удобств при отладке отказался от таких понтов )

PS
Если тебе неймется лаконичная семантика, то вообще садись за Lisp или другую ф-циональщину, код , как произведение Рембрандта будет выглядеть, только это будет равносильно, как кататься на феррари по деревне ) 

Это сообщение отредактировал(а) magesi - 23.6.2012, 18:42
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
И что ты тернарным оператором меня дразнишь?    эти понты уже в прошлом

откуда столько пафоса? (плюющий)

Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
компилятор все равно порежет код

код пишется для людей, а не для компилятора.
и это ты где-то выше говорил о плохом качестве кода GNU проектов? глядя на "это", хочется сказать только одно: "чья бы корова мычала?" ©

Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
я чисто для удобств при отладке отказался от таких понтов

т.е. написал этот псевдокод, ты собрался его отлаживать? smile 
PM WWW   Вверх
magesi
  Дата 23.6.2012, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
код пишется для людей, а не для компилятора.

именно он пишется не только для программистов, но и для остального персонала, кто будет шляться с brakepoint по твоему коду, делать unit-тесты и прочее... и за тернарные операторы будет неудобная отладка программы, тебе dump будет сложнее смотреть в нужный момент, пока не вышло из блока if-else

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
и это ты где-то выше говорил о плохом качестве кода GNU проектов? глядя на "это", хочется сказать только одно: "чья бы корова мычала?" ©

ты издеваешься?  smile я , как настоящий гнушник щя на коленке написал код , чтобы объяснить девушке, как лучше

с чего ты решил, что использование тернарного оператора приветсвуется? обычно, если кто-то пишет так, то из отдела тестирования будет доносится громкий мат при неудобстве с отладками  smile 

я в свое время и лямбдами злородствовал в своем коде, знаешь что доносилось только из отделов? ) ( один только крик "лямбда-*уямба" чего стоило услышать на всю фирму ))) )

и нечего Путина цитировать, не к месту  smile 

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
т.е. написал этот псевдокод, ты собрался его отлаживать? 

думаю, что придется с такими темпами, плюс еще код переписывать ) еще учитывая , что у нее простой Си, а не СИ++

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
откуда столько пафоса? (плюющий)

исчо кому плевать надо ) вроде не я тернарый юзал для лаконичности программы

Добавлено @ 18:49
boostcoder, ты вроде лакончичность хотел, лови феррари ( реализация семафора ) на Лиспе  smile 
Код

(define (make-semaphore max) 
  (let ((count 0) 
        (cell (list false))) 
    (define (increment) 
      (set! count (+ count 1))) 
    (define (decrement) 
      (set! count (- count 1))) 
    (define (has-room?) (> max count)) 
    (define (the-semaphore m) 
      (cond ((eq? m 'acquire) 
             (if (has-room?) 
                 (increment) 
                 (if (test-and-set! cell) (the-semaphore 'acquire)))) 
            ((eq? m 'release) 
             (decrement) 
             (if (has-room?) (clear! cell))))) 
    the-semaphore)) 
 
(define (clear! cell) 
  (set-car! cell false)) 
 
(define (test-and-set! cell) 
  (if (car cell) 
      true 
      (begin (set-car! cell true) 
             false))) 


Ну, как лаконично?  smile 
Под это дуру бы дебаггер написать бы, замучаешься только даже с хвостовыми рекурсиями и замыканиями в коде )

PS
Кстати, это еще одна причина почему я перестал юзать всякие функторы ( лямбды и др. ф-циональные объекты ), тернарные операторы и прочее в императивных языках, т.к. смотрится нелепо немного... неймется, лаконичности, садисть за: Lisp, Haskell, Prolog, Erlang, F# и пиши лаконично smile можешь хоть часть проекта на ф-ционльшине написать, др. часть на императиве....

Ф-циональные штучки в императиве, это равносильно, что бомж оденет браслет Версачи...  smile 
посему, если хочется повыпендриваться с всякими функторами, кэррированием, замыканием и прочим, садись уж сразу за true ф-циональные ЯПы, а не частично... смотрися нелепо просто....

да и в С++ 0х ( 11 ) не привлек своими лямбдами и ф-циональной стороной, все равно до всех правил, которые есть в том же Haskell - далеко... скорее смотрится, как то , что есть такая возможность и не более... учитывая все аспекты и возможности того же Haskell 

Это сообщение отредактировал(а) magesi - 23.6.2012, 21:28
PM MAIL   Вверх
math64
Дата 25.6.2012, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

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



Чтобы писать под Windows95, нужно минимум Borland C++ 4.5 (из компиляторов Borland).
Но вероятно, нужно писать под DOS, поскольку нужно переводить LPT в режим передачи в обоих направлениях, а в Windows95 все стандартные драйверы LPT передают данные только от компьютера к принтеру (обратно идут только сигналы типа конца бумаги)
Как управлять каналами - нужно смотреть документацию на модем, и скорее всего этот модем то же допотопный или даже самодельный, так что в инете на него документацию не найти.
PM   Вверх
xvr
Дата 25.6.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(math64 @  25.6.2012,  08:11 Найти цитируемый пост)
Как управлять каналами - нужно смотреть документацию на модем, и скорее всего этот модем то же допотопный или даже самодельный, так что в инете на него документацию не найти. 

Вот именно! С этого и надо начинать - с 3х канального модема на LPT (я даже не берусь себе представить, что это за монстр такой)!

А то уже девушку загрузили по полной - и семафоры и ring0 в ход пошли  smile 

PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(magesi @ 23.6.2012,  16:42)
Под *nix много, что понимается, даже такая экзотика, как Plan9, где нет рутов...

Не, Plan 9 не понимается, AFAIK.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(magesi @ 23.6.2012,  17:09)
а вера при чем тут? что из того, что я перечислил, не совпадает? что они стали теперь даже данные хранить в нормальных структурах данных? Выбирая примитивные бинарные деревья, и не выбирая нормальные структуры данных для той или иной операции

ты исходы открывал всяких GNU-проектов, я всегда шалел, почему там не могу даже нормальные алгоритмы по сортировки выбирать?

возьми исходники FireFox , аж в комментах написано, что через g++ компилиться, код выглядит, как чисто сишный ( причем и для чистого си - плохой ), много goto ( причем с goto это болезнь какая-то у практически всех GNU проектов любого уровня сложности ), много где указатели в виде типа возвр. описаны ( за что можно смело насиловать ), в качестве алгоритма сортиворки merge sort ( слиянием ), а почему не Хоара ( quick sort ), это нормально? И такое безобразие в GNUшных проектах практически везде... Будет это ОС, браузер, интепретатор, редактор 3Д без разницы... Везде один раздолбайский стиль проектов, как будто бы писали на коленках и на скорости

стиль программирования какой там во многих проектах? да за такой, код в конторах руки оторвут

Попробуй посмотреть исходники NetBSD, говорят, там неплохой код.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
magesi
Дата 25.6.2012, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(k0rvin @  25.6.2012,  13:44 Найти цитируемый пост)
Не, Plan 9 не понимается, AFAIK. 

На каком основании?


Цитата(k0rvin @  25.6.2012,  14:04 Найти цитируемый пост)
Попробуй посмотреть исходники NetBSD, говорят, там неплохой код. 

Посмотрю на досуге именно NetBSD
PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(magesi @ 25.6.2012,  16:45)
На каком основании?

На том, что она имеет мало общего с оригинальной UNIX и даже не является POSIX-совместимой, зато отличий предостаточно и они довольно значимы. Хотя там есть эмуляция POSIX API и X11, но она весьма проста и позиционируется лишь как «крайняя мера» и весь софт рекомендуется переписывать заново в соответствии с идеологией и архитектурой системы.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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