Nano Hash - криптовалюты, майнинг, программирование

Библиотека системных вызовов в Windows

Можно ли перевести следующие функции из syscall во что-то из windows.h? Если да, то кто-то с информацией может мне помочь, я ничего не могу найти в гугле.

static inline int __setns(int fd, int nstype) {
    return syscall(__NR_setns, fd, nstype);

}

static inline int __unshare(int flags) {
    return syscall(__NR_unshare, flags);
}

static inline int __accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags) {
    return syscall(__NR_accept4, sockfd, addr, addrlen, flags);
}

static inline int __dup3(int oldfd, int newfd, int flags) {
    return syscall(__NR_dup3, oldfd, newfd, flags);
}

static inline ssize_t __readlinkat(int dirfd, const char *pathname, char *buf, size_t bufsiz) {
    return syscall(__NR_readlinkat, dirfd, pathname, buf, bufsiz);
}

static inline int __symlinkat(const char *target, int newdirfd, const char *linkpath) {
    return syscall(__NR_symlinkat, target, newdirfd, linkpath);
}

static inline int __linkat(int olddirfd, const char *oldpath,
        int newdirfd, const char *newpath, int flags) {
    return syscall(__NR_linkat, olddirfd, oldpath, newdirfd, newpath, flags);
}

static inline int __inotify_init1(int flags) {
    return syscall(__NR_inotify_init1, flags);
}

static inline int __faccessat(int dirfd, const char *pathname, int mode, int flags) {
    return syscall(__NR_faccessat, dirfd, pathname, mode, flags);
}
30.05.2020

Ответы:


1

Нет, это невозможно. Это специфичные для Linux системные вызовы, и в других операционных системах прямого «перевода» нет.

Единственное, что вы можете сделать под Windows, это попытаться эмулировать эти системные вызовы, но это может зайти слишком далеко, и вы не сможете эмулировать их все. Отличным примером этого является Cygwin, который эмулирует множество стандартных системных вызовов Linux в Windows, предоставляя заголовок unistd.h, как и в любой системе Linux.

Если вы хотите перевести что-то за пределами заголовка unistd.h, предоставленного Cygwin, я бы сказал, что это, к сожалению, невозможно. Вы можете попробовать написать похожие оболочки, но вы не получите такой же системный вызов.

30.05.2020
  • Нет ли эквивалентного вызова? из окон? 30.05.2020
  • @IonutAlexandru Нет, эквивалентного вызова нет. Как я уже сказал, вы можете подражать только тем, кто использует, например, Cygwin. 30.05.2020
  • stackoverflow.com/questions/19894482 / это невозможно :( 30.05.2020
  • @IonutAlexandru, извините, я не заметил, что вы специально пытались использовать системные вызовы за пределами тех, которые определены в uinstd.h. Да, это невозможно, к сожалению. 30.05.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..