c语言-关于UBUNTU下C语言 段错误 转存储的问题

问题描述

关于UBUNTU下C语言 段错误 转存储的问题

在Linux下雪C语言编程时,
1、捕捉文件操作错误并打印错误信息:strerror(errno)
2、用域名取得ip地址是打印IP是调用:inet_ntoa()时

总是出现段错误 ,该如何解决!

解决方案

确认你定义了两个类似的结构体实例:

struct sockaddr_in client
socklen_t length;
length=sizeof(client);

然后在accept()函数里面这样传递参数(注意传递地址)

 accept(sockfd,(struct sockaddr*)&client,&length);

最后可以打印客户的ip和端口啦

printf("new conn[%s:%d][time:%ld],pos[%d]n",
inet_ntoa(client.sin_addr),ntohs(client.sin_port),

希望能帮到你!

解决方案二:

学习了,看来现在系统版本什么的,得考虑到写程序里面了,但是这块的参考资料很少,只能读readme什么的原版东西了

时间: 2024-12-03 20:43:08

c语言-关于UBUNTU下C语言 段错误 转存储的问题的相关文章

ubuntu下下载vim出现错误,显示无法下载,翻墙后就可以下载了

问题描述 ubuntu下下载vim出现错误,显示无法下载,翻墙后就可以下载了 这是什么原因呢?下载必须翻墙? 解决方案 将你的dns修改为8.8.8.8看看.

Ubuntu下如何开启PHP错误提示教程

ubuntu下默认是没有php语法错误提示的,如果要开启,需要修改几个地方: 1. 打开php.ini文件. 这个文件在: /etc/php5/apache2 目录下,需要修改这个文件的权限才能写入.     sudochmod777/etc/php5/apache2/php.ini 2. 搜索并修改下行,把Off值改成On     display_errors=Off 3. 搜索下行     error_reporting=E_ALL&~E_NOTICE 或者搜索:     error_rep

c语言-在ubuntu下用eclipse编c有问题

问题描述 在ubuntu下用eclipse编c有问题 在编译c语言的时候出现了这样的提示框:Launch failed. Binary not found 这是什么情况啊?请问怎么解决? 解决方案 好像说是编译配置的问题,你需要把安装gcc并配置为eclipse的C的编译器,具体可以去网上搜搜,有教程的. 可以参考http://blog.sina.com.cn/s/blog_b5b004920101pyln.html

c语言-Code Blocks 下C语言编程的问题

问题描述 Code Blocks 下C语言编程的问题 enum Dirction{updownforwardbackleftright};void main(){ enum Direction commands[10]= {forwardrightforwardrightforwardrightforwardrightforwardright}; int x=0y=0; int i=0; for (i=0;i<10;i++) { move (commands[i]&x&y); pri

go语言-Sublime环境下Go语言环境变量配置的问题

问题描述 Sublime环境下Go语言环境变量配置的问题 看了很多个教程,都有修改新建GOPATH GOROOT等环境变量的步骤,但是个人还是觉得很混乱...求详细指导 另外,还有gocode不知为何安装不了 解决方案 sublime配置C语言环境 解决方案二: 基本就是GOPATH,GOROOT设置环境变量.然后sublime中配置对应的命令.没什么其他第二个特别方法.gocode http://m.blog.csdn.net/blog/wolinxuebin_11109/7724049

c语言-帮忙看下C语言打印错误

问题描述 帮忙看下C语言打印错误 #include int main(void) { int n,i,j,t; scanf("%d",&n); for(i=1;i<=4;i++){ for (j=1;j<=n-i;j++) printf(" "); for(t=1;t<=2i-1;t++) printf("*"); printf("n");} for(i=3;i>=1;i--){ for (j=

关于c语言内存分配,malloc,free,和段错误,内存泄露

1.   C语言的函数malloc和free  (1) 函数malloc和free在头文件<stdlib.h>中的原型及参数        void * malloc(size_t size) 动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL.        void  free(void *ptr) 释放动态申请的内存空间,调用free()后ptr所指向的内存空间被收回,如果ptr指向未知地方或者指向的空间已被收回,则会发生不可预知的错误,如果ptr为NULL,

Step by step teach yourself ruby (一) -- 在ubuntu下搭建语言和开发环境

1. 安装Ruby语言 apt-get install ruby rdoc ri irb 检查安装结果 ruby -v 2. 安装Ruby语言相关库   apt-get install libruby libruby1.8 ruby1.8-dev libopenssl-ruby1.8   检查安装结果irb   3. 安装Ruby语言软件包管理系统(Package Management System)RubyGems     下载http://rubyforge.org/frs/download

Linux环境下段错误的产生原因及调试方法小结_C 语言

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个