gpt4 book ai didi

c - 为什么函数 shmget (key_t , size_t , int ) 在 Netbeans 中返回 -1 但在终端编译时却运行正常?

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:27 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h> /* to allow use of function: atoi() */
#include "process.h"
#include <string.h>

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/wait.h>
#include <errno.h>
#include <stdint.h>

int main(int argc, char *argv[])
{
size_t size;
int ShmID;
int *ShmPTR;
pid_t pid;
int status;

if (argc != 5)
{
printf("Use: %s #1 #2 #3 #4\n", argv[0]);
exit(1);
}

ShmID = shmget(IPC_PRIVATE, 4*sizeof(int), IPC_CREAT|0666);
if (ShmID < 0)
{
perror("shmget");
printf("*** shmget error (server) ***\n");
printf("\nPrint: %d",ShmID);
printf("\nPrint: %d",errno);
exit(1);
}
else
{
printf("%s","\nsuccess\n");
printf("\n%d\n", ShmID);

}

return NOERRORS;
}

NetBeans 中的输出:

shmget: Function not implemented * shmget error (server) *

Print: -1

Print: 88

RUN FAILED (exit value 1, total time: 94ms)

当我通过 putty 在终端编译代码时,它可以正常运行并且 shmget() 不会返回 -1。 Netbeans 中的 perror() 消息显示“函数未实现”。是什么原因造成的?我刚刚重新安装了 C 编译器、Make、GDB 和 C++ 编译器,但没有修复。

最佳答案

我设法找到了解决问题的办法。以下是一些可以轻松遵循的步骤:

  1. 从 Cygwin 安装程序安装这 4 个软件包:

libxcb-shm-devel:X 协议(protocol) C 语言绑定(bind)(shm 开发)

libxcb-shm0:X 协议(protocol) C 语言绑定(bind)(shm 运行时)

cygrunsrv: NT/W2k 服务启动器

cygrunsrv-debuginfo:cygrunsrv 的调试信息

  1. 在 NetBeans 终端中运行此命令。只需将其复制并粘贴到那里:

/usr/bin/cygserver-config

  1. 按照要求您输入 yes 的说明进行操作,它应该会起作用。

关于c - 为什么函数 shmget (key_t , size_t , int ) 在 Netbeans 中返回 -1 但在终端编译时却运行正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36901538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com