- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试用 C 编写套接字程序。当我这样做时,我的整个代码都可以正常工作
#define PORT "3333"
但不是
#define PORT getParameter("setting.ini","PORT")
基本上,getParameter 只是打开 setting.ini 文件并通读,查找变量及其值,然后返回它。我这样做的唯一原因是因为我不想在我的代码中硬编码端口号。我得到了:
"Servname not supported for ai_socktype"
我不知道是什么导致了这个错误。有任何想法吗?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char *substring(char* str, int start, int length) {
char *newString = (char *)malloc(length * sizeof(char)+1);
int i, x = 0;
int end=start+length-1;
for(i = start ; i <= end; i++)
newString[x++] = str[i];
newString[x] = '\0';
return newString;
}
char *getParameter(char *fName, char *pName)
{
FILE *fr;
char line[80];
int i;
fr = fopen (fName, "r"); /* open the file for reading */
while(fgets(line, 80, fr) != NULL)
{
i = strcspn (line,"=");
if(strcmp(pName,substring(line,0,i))==0){
char *value = substring(line,i+1,strlen(line)-i);
fclose(fr);
return value;
}
}
fclose(fr);
}
int main(void){
char *PORT = getParameter("setting.ini","PORT");
const int BACKLOG = atoi(getParameter("setting.ini","BACKLOG"));
printf("%s\n",PORT);
printf("%d\n",BACKLOG);
return 0;
}
最佳答案
我怀疑您的问题与换行有关。当您硬编码时,您的字符串不包含换行符,但是当您使用 fgets()
读取它们时,您解析它们的方式会保留任何尾随 \n
.这可能会混淆您将值传递给的任何内容以获取该错误。
除此之外,您的代码中有许多内存泄漏,因为您的 substring()
调用的结果永远不会被释放(并且您甚至没有保留指向它们的指针,因此它们在某些情况下可以释放)。
关于C#define 字符串,ai_socktype 不支持 Servname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984770/
我正在使用 Vagrant 运行 Centos 虚拟机。机器似乎运行正常,但是当我尝试同步 Perforce 时,我可以看到以下错误: [vagrant@vagrant-c5-x86_64 ~]$ /
我无法通过 paramiko 连接到其他服务器: import paramiko import sys import os hostname = 'server1' port = 22 usernam
所以,在我得到这个错误之后,我一直在这里寻找答案,几乎每个人都有一个很难解决这个错误的方法,但是没有人解释为什么会发生这个错误,所以我不认为这个问题是完全重复。 我用 C 语言编写了一个 TCP 套接
我正在尝试用 C 编写套接字程序。当我这样做时,我的整个代码都可以正常工作 #define PORT "3333" 但不是 #define PORT getParameter("setting.ini
我的 laradock 项目遇到了麻烦:我已经下载并安装了 docker,并且我已经使用 laradock 成功完成了我的 laravel 项目的设置。我使用 php 7、laravel(5.5.14
我基本上为 FOG 设置了以下 right out of the FOG website : def fog_save_file_for(filename, file) # create a co
我正在尝试使用带有路径样式 url 的 s3cmd 从我的 S3 存储桶访问对象。这个用Java SDK之类的是没有问题的。 s3Client.setS3ClientOptions(S3ClientO
当我尝试使用 MAMP 连接到 mac 上的主机时出现此错误 php_network_getaddresses: getaddrinfo failed: nodename nor servname p
我被一个看似与 asyncio + aiohttp 相关的问题难住了,当发送大量并发 GET 请求时,超过 85% 的请求会引发 aiohttp.client_exceptions.ClientCon
我尝试执行 git pull --rebase 但我收到以下错误: ssh: Could not resolve hostname git: nodename nor servname provide
我在运行 Mac OS X 10.6 的计算机上部署了一个 Ruby on Rails 应用程序。出现问题的代码是由delayed_job运行的。只有在通过 delayed_job 运行时才会出现此问
有人可以帮忙吗?? 我在连接时收到此错误.. abort: error: nodename nor servname provided, or not known 请帮帮我。 实际上我想从存储库中获取
我正在遵循这个关于本地安装 Mesos 的简单指南 https://mesosphere.com/2014/07/07/installing-mesos-on-your-mac-with-homebr
我正在尝试在 Docker 上设置 Symfony4 项目,除了 Doctrine CLI 功能之外,一切正常。当我通过 CLI 运行命令时,它似乎无法连接到数据库。 phpMyAdmin 和项目本身
我正在尝试通过 Python 脚本通过 SSH 连接到服务器。目前我正在试用 paramiko。我在客户端和服务器之间设置了一个公钥,所以我不需要密码。我目前正在使用以下代码: ssh = param
我正在尝试通过本教程学习如何使用套接字: https://www.tutorialspoint.com/python/python_networking.htm 我已将网站上的代码复制到我的目录中,并
我是 Hadoop 新手。我使用这个 link 在我的 MAC 上安装了 Hadoop 一开始它对我来说就像一个魅力,但现在当我从 Eclipse 运行相同的 WordCount 问题时遇到了这个问题
我观察到,这是因为端口。端口是 C++ 字符串。当我硬编码端口号时说“4091”我没有看到这个问题。有什么建议吗? int sockfd; struct addrinfo hints, *servin
我间歇性地收到此错误,但当它发生时,我使用 Django 的 LiveServerTestCase 进行的自动集成测试突然停止并抛出以下错误: WSGIServerException: [Errno
我正在尝试编写一个 go http 服务器,但是当我尝试收听传入连接时遇到问题。 硬件设置:MacOS Sierra 10.12.4,docker 17.03 我有一个 yml 文件可以打开一个 .
我是一名优秀的程序员,十分优秀!