首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在C中检查argc的值

在C中检查argc的值
EN

Stack Overflow用户
提问于 2012-10-15 13:48:57
回答 1查看 3.3K关注 0票数 0

可能重复: Checking value of argc

我要坚持套接字编程,这是我的套接字编程,在linux上开发的简单C代码,但是由于使用了代表端口的argc值,代码在第一个容器中不能工作和退出。我需要帮助:)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
const char APRESSMESSAGE[] = "APRESS - For Professionals, By Professionals!\n";

int main(int argc, char *argv[]) {
int simpleSocket = 0;
int simplePort = 0;
int returnStatus = 0;
struct sockaddr_in simpleServer;

if (2 != argc) {
    fprintf(stderr, "Usage: %s <port>\n", argv[0]);
    exit(1);
}
simpleSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
printf("%i\n", simpleSocket);
if (simpleSocket <= -1) {
    fprintf(stderr, "Could not create a socket!\n");
    exit(1);
} else {
    fprintf(stderr, "Socket created!\n");
}
/* retrieve the port number for listening */
simplePort = atoi(argv[1]);
/* set up the address structure */
/* use INADDR_ANY to bind to all local addresses
 */
puts("test1");
bzero(&simpleServer, sizeof(simpleServer));
simpleServer.sin_family = AF_INET;
simpleServer.sin_addr.s_addr = htonl(INADDR_ANY);
simpleServer.sin_port = htons(simplePort);
/*
 bind to the address and port with our socket
 */
returnStatus = bind(simpleSocket, (struct sockaddr *) &simpleServer,
        sizeof(simpleServer));
if (returnStatus == 0) {
    fprintf(stderr, "Bind completed!\n");
} else {
    fprintf(stderr, "Could not bind to address!\n");
    close(simpleSocket);
    exit(1);
}
/* let's listen on the socket for connections */
returnStatus = listen(simpleSocket, 5);
if (returnStatus == -1) {
    fprintf(stderr, "Cannot listen on socket!\n");
    close(simpleSocket);
    exit(1);
}
while (1) {
    struct sockaddr_in clientName = { 0 };
    int simpleChildSocket = 0;
    int clientNameLength = sizeof(clientName);
    /* wait here */
    simpleChildSocket = accept(simpleSocket,
            (struct sockaddr *) &clientName, &clientNameLength);
    if (simpleChildSocket == -1) {
        fprintf(stderr, "Cannot accept connections!\n");
        close(simpleSocket);
        exit(1);
    }
    /* handle the new connection request
     */
    /* write out our message to the client */
    write(simpleChildSocket, APRESSMESSAGE, strlen(APRESSMESSAGE));
    close(simpleChildSocket);
}
close(simpleSocket);
return 0;

}

EN

回答 1

Stack Overflow用户

发布于 2012-10-15 13:53:18

我不太清楚您在问什么,但我相信您对检查传递给您的程序的参数数的if语句是如何工作的感到困惑。在命令行中,如果用户运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myprogram

argv的值为{"myprogram"}argc为1。另一方面,如果您运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myprogram 23

argv的值为{"myprogram", "23"}argc为2。我认为在运行程序时,您根本没有传递端口号的适当参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12904559

复制
相关文章
python中的argv和argc
argc:argument counter,命令行参数个数 argv:argument vector,命令行参数向量(内容)
py3study
2020/01/09
2.7K0
在C或C++中如何使用PI(π)值
参考链接: C++ acos() #include <math.h> #define PI acos(-1) 主要是利用利用数学函数中的反三角函数,但是要注意一定引入math包           arccos          ⁡          (          −          1          )          =          π         \arccos(-1)=\pi      arccos(−1)=π  完整示例:  //#define LOCAL #includ
用户7886150
2021/02/09
5.9K0
scrapy在cmd中检查
1,scrapy shell 2,fetch('http://gk.scsn.gov.cn/Search.aspx?columnId=40012') 抓取网页 3。response.xpath('//
Centy Zhao
2019/12/26
7690
在 Kubernetes 中检查镜像签名
之前连续写了几篇 Shell Operator 的东西,后来又写了一篇 cosign 的介绍,细心的读者可能会猜到,最终我的目的就是会用 Shell Operator 结合 cosign 来检查镜像的签名,以此保障镜像的完整性——是的,这个过程相当容易。
崔秀龙
2021/04/25
1.2K0
在 Kubernetes 中检查镜像签名
之前连续写了几篇 Shell Operator 的东西,后来又写了一篇 cosign 的介绍,细心的读者可能会猜到,最终我的目的就是会用 Shell Operator 结合 cosign 来检查镜像的签名,以此保障镜像的完整性——是的,这个过程相当容易。
CNCF
2021/05/07
9310
C++中的左值和右值
在C/C++中,左值(lvalue)和右值(rvalue)是用于规定表达式(expression)的性质。C++中表达式要不然是左值,要不然是右值。
阿杜
2018/08/06
1.8K0
C++ 中的左值和右值
一直以来,我都对C++中左值(lvalue)和右值(lvalue)的概念模糊不清。我认为是时候好好理解他们了,因为这些概念随着C++语言的进化变得越来越重要。
全栈程序员站长
2022/07/23
1.9K0
C++中的左值和右值
学C++时间也不短了,突然发现,还不知道左值和右值是什么,毕竟学C++不够系统,详细。
种花家的奋斗兔
2020/11/13
2.4K0
C++中的左值和右值
原 argc argv
通过以下例子来作说明: [root@localhost arg]# cat argtest.c  #include <stdio.h>//#包含<stdio.h> /* 整数类型主函数(整数类型统计参数个数,字符类型*数组指针至字符[]) */ int main(int argc,char* argv[]) { printf("%d\n",argc);//格式化输出 while(argc)//当(统计参数个数) printf("%s\n",argv[--argc]);//格式化输出 ret
王果壳
2018/05/17
1K0
如何检查 Java 数组中是否包含某个值 ?
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题。比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下。
用户7886150
2021/04/28
9.2K0
【译】理解C和C++中的左值和右值
https://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c/
用户6557940
2022/07/24
1.2K0
c语言main函数里的参数argv和argc解析
一般我们平时写main函数的话,一般都是写不带参数的比较多,而且也习惯了这样写;其实标准的形式写法,main函数是带两个参数的,这两个参数分别是:argc和argv,那么这两个参数是表示什么意思,怎么用呢?今天就给大家分享main函数里面这两个参数的使用,下面看到这样的写法,要明白这样写的意思哦!
用户6280468
2022/03/21
3.1K0
c语言main函数里的参数argv和argc解析
Go中枚举值有效性检查最佳实践
由于Go中的枚举是使用类型别名构造的,因此我们无法实现对枚举值的限制。例如,如果我们接收到到以下JSON内容将会发生什么?
Go学堂
2023/01/31
1.5K0
在.NET Core 中实现健康检查
.NET Core中提供了开箱即用的运行状况检查,首先,我将在.NET Core API应用程序中执行运行状况检查,接下来,我们将使用DbContext集成SQL Server或数据库的运行状况检查,最后是如何实现自定义服务的运行状况检查。
全球技术精选
2021/02/19
8800
在.NET Core 中实现健康检查
C# 中检查null的语法糖,非常实用
C#处理null的几个语法糖,非常实用。(尤其是文末Dictionary那个案例,记得收藏)
郑子铭
2023/02/12
1.1K0
C# 中检查null的语法糖,非常实用
MySQL在Consul服务中的健康检查逻辑
MySQL的Consul方向开始要大规模推广的时候,一直感觉健康检查的部分还是不够严谨,虽然感觉是,但是总体逻辑上看也没什么硬伤,就暂时搁置了下来,最近业务的推广和普及,一旦逻辑出现漏洞或者不严谨,则是一种很被动的局面,所以我们开始梳理清晰完整的检查逻辑,我对这个部分的要求是能够输出一个清晰可见的逻辑关系图,经得起推敲,一目了然,这样才算是心里踏实。
jeanron100
2019/09/04
1.2K0
MySQL在Consul服务中的健康检查逻辑
C#中检查null的语法糖,实用+必备
如果左边是的null,那么返回右边的操作数,否则就返回左边的操作数,这个在给变量赋予默认值非常好用。
用户9127601
2023/10/23
2481
C#中检查null的语法糖,实用+必备
C#中检查null的语法糖,非常实用
c#处理null的几个语法糖,非常实用。(尤其是文末Dictionary那个案例,记得收藏)
郑子铭
2023/02/12
6580
C#中检查null的语法糖,非常实用
[Office] 在Excel中,如何根据值求出其在表中的坐标
在使用excel的过程中,我们知道,根据一个坐标我们很容易直接找到当前坐标的值,但是如果知道一个坐标里的值,反过来求该点的坐标的话,据我所知,excel没有提供现成的函数供使用,所以需要自己用VBA编写函数使用 (代码来自互联网)
轻舞飞扬SR
2021/02/24
8.9K0
灵魂拷问:如何检查Java数组中是否包含某个值 ?
另外,我想要告诉大家的是,作为程序员,我们千万不要轻视这些基础的知识点。因为基础的知识点是各种上层技术共同的基础,只有彻底地掌握了这些基础知识点,才能更好地理解程序的运行原理,做出更优化的产品。
沉默王二
2019/12/17
4.9K0

相似问题

C中的argc/argv问题

23

在主函数c++中,argc和argv的值来自哪里?

32

在c++中解析argc和argv

21

C中的argc分段故障错误

13

Argc/Argv C问题

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文