【问题标题】:Error "Function not implemented" in semget using cygwin使用 cygwin 的 semget 中出现错误“功能未实现”
【发布时间】:2021-06-30 16:59:05
【问题描述】:

我正在使用 cygwin 运行以下 C 程序。 semget 命令后出现错误 88。

有人可以帮忙做些什么来让 semget 工作吗?

#include <sys/sem.h>
#include<sys/ipc.h>
#include<stdio.h>
#include <errno.h>
#include <string.h>

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

   semid=semget(IPC_PRIVATE,1,IPC_CREAT|0600);
   if (semid == -1){
        printf("ERRNO=%d",errno);
        printf(" %s",strerror(errno));
    }else{
        printf("ID = %d\n", semid);
    }
   return 0;
 }

运行上述程序时,我得到以下输出

【问题讨论】:

  • 根据此链接,我尝试运行 cygserver-config,但给出错误“/usr/bin/cygserver-config: line 181: cygrunsrv: command not found”。我该如何解决这个问题?
  • ps:它在“Windows 上的 Ubuntu 20.04 LTS”上编译和运行没有问题

标签: c cygwin semaphore


【解决方案1】:

使用cygcheck查找包:

$ cygcheck -p bin/cygrunsrv
Found 4 matches for bin/cygrunsrv
...
cygrunsrv-1.62-1 - cygrunsrv: NT/W2K service initiator (installed binaries and support files)

所以你需要安装cygrunsrv

cygserver安装配置完成后,可以运行:

$ cygrunsrv -S cygserver

和你的程序

$ gcc -Wall prova.c -o prova

$ ./prova.exe
ID = 65536

$ ./prova.exe
ID = 65537

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多