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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что такое WinAPI? 
:(
    Опции темы
 
Что такое WinAPI?
Произведения искусства [ 12 ]  [28.57%]
Кладезь отстоя [ 24 ]  [57.14%]
Свой вариант (опишу в теме) [ 6 ]  [14.29%]
Всего проголосовавших: 42
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
bems
Дата 19.5.2010, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(MAKCim @  19.5.2010,  09:08 Найти цитируемый пост)
ОС определяется ядром
Нет. Есть куча неядерных компонентов, которые тем не мение в полном смысле слова - часть ос. И они тоже предоставляют апи. Winsock например.

Цитата(MAKCim @  19.5.2010,  09:08 Найти цитируемый пост)
если какая-то функция работает в userspace, то это лишь вспомогательная функция, которая прямо или косвенно зависит от ядра и вне его не имеет смысла
Без ядра ничто не имеет смысла. Это не значит что ос=ядро, апи вызов = ядерный вызов.

Цитата(MAKCim @  19.5.2010,  09:08 Найти цитируемый пост)
используют ли java, python и т. д. api напрямую ;)
Это сложно, потому что выше выяснилось что перл с питоном экспортируют функции ядра. У вас правда ядро на пайтоне?



--------------------
Обижено школьников: 8
PM MAIL   Вверх
gcc
Дата 19.5.2010, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

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



нашел
Цитата

=head2 API NOTES

All the C<aio_*> calls are more or less thin wrappers around the syscall
with the same name (sans C<aio_>). The arguments are similar or identical,
and they all accept an additional C<$callback> argument which must be
a code reference. This code reference will get called with the syscall
return code (e.g. most syscalls return C<-1> on error


syscall входит наверное в #include <stdio.h>

sys/syscall.h в этом файлике перечисленные все функции ядра и этот файл автоматически создается (в нем написано)

вот я нашел код где проверяются какие функции какие есть в каждой операционной системе

Код

 # try with statvfs..
  eval {  # will work for Solaris 2.*, OSF1 v3.2, OSF1 v4.0 and HP-UX 10.*.
    {
      package main;
      require "sys/syscall.ph";
    }
    $fmt = "\0" x 512;
    $res = syscall (&main::SYS_statvfs, $dir, $fmt) ;


  # try with statfs..
  || eval { # will work for SunOS 4, Linux 2.0.* and 2.2.*
    {
      package main;
      require "sys/syscall.ph";
    }
    $fmt = "\0" x 512;
    $res = syscall (&main::SYS_statfs, $dir, $fmt);
    # statfs...


 || eval {
    {
      package main;
      require "sys/syscall.ph";
    }
    # The previous try gives an unknown fs type, it must be a different
    # structure format..
    $fmt = "\0" x 512;
    # Try this : n2i7L119
    $res = syscall (&main::SYS_statfs, $dir, $fmt);
    ($type, $flags, $bsize, $frsize, $blocks,
     $bfree, $bavail, $files, $ffree) = unpack "n2i7", $fmt;
    $res == 0 && defined $fs_type{$type};
  }
  # Neither statfs nor statvfs.. too bad.
  || eval {
    $osvers = $Config{'osvers'};
    $w = 0;
    # These system normaly works but there was a problem...
    # Trying to inform the user...
    if ($^O eq 'solaris' || $^O eq 'dec_osf') {
      # Tested. No problem if syscall.ph is present.
      warn "An error occured. statvfs failed. Did you run h2ph?\n";
      $w = 2;
    }
    if ($^O eq 'linux' || $^O eq 'freebsd') {
      # Tested with linux 2.0.0 and 2.2.2
      # No problem if syscall.ph is present.
      warn "An error occured. statfs failed. Did you run h2ph?\n";
    }
    if ($^O eq 'hpux') {
      if ($osvers == 9) {
    # Tested. You have to change a line in syscall.ph.
    warn "An error occured. statfs failed. Did you run h2ph?\n" .
      "If you are using a hp9000s700, see the Df documentation\n";
      }
      elsif ($osvers == 10) {
    # Tested. No problem if syscall.ph is present.
    warn "An error occured. statvfs failed. Did you run h2ph?\n";
      }
      else {
    # Untested
    warn "An error occured. df failed. Please, submit a bug report.\n";
      }
      $w = 3;
    }
    $w;
  }
  || Carp::croak "Cannot use df on this machine (untested or unsupported).";



или вопрос в другом?



Это сообщение отредактировал(а) gcc - 19.5.2010, 17:56
PM WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




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


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

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