linux C错误汇集

简介: 问题一: 22.c: In function ‘main’:22.c:8:9: error: empty character constant  解决方法:少了空格     问题2.  没有连接到math函数库   gcc 12.

问题一:

22.c: In function ‘main’:
22.c:8:9: error: empty character constant
  解决方法:少了空格

 

 

问题2.  没有连接到math函数库

  gcc 12.c -o 12 -lm

 

 

问题3.segment fault

1.内存访问越界

 a) 由于使用错误的下标,导致数组访问越界

 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符

 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函数防止读写越界。

2 多线程程序使用了线程不安全的函数。

3 多线程读写的数据未加锁保护。对于会被多个线程同时访问的全局数据,应该注意加锁保护,否则很容易造成core dump

4 非法指针

a) 使用空指针

b) 随意使用指针转换。一个指向一段内存的指针,除非确定这段内存原先就分配为某种结构或类型,或者这种结构或类型的数组,否则不要将它转换为这种结构或类型 的指针,而应该将这段内存拷贝到一个这种结构或类型中,再访问这个结构或类型。这是因为如果这段内存的开始地址不是按照这种结构或类型对齐的,那么访问它 时就很容易因为bus error而core dump.

5 堆栈溢出.不要使用大的局部变量(因为局部变量都分配在栈上),这样容易造成堆栈溢出,破坏系统的栈和堆结构,导致出现莫名其妙的错误。

目录
相关文章
|
存储 Ubuntu Linux
windows 操作系统使用 pscp 拷贝文件到 Linux 系统遇到的错误消息
windows 操作系统使用 pscp 拷贝文件到 Linux 系统遇到的错误消息
221 0
windows 操作系统使用 pscp 拷贝文件到 Linux 系统遇到的错误消息
|
Linux
Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误
Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误
3117 0
Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误
|
关系型数据库 MySQL Linux
Linux连接MySQL时的错误:Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
连接本地的MySQL数据库引擎时候出现的错误。用mysql_error()函数获取到错误提示:
|
Linux
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
1988 0
|
Linux
LINUX上安装gstreamer,解决video.h找不到的错误
LINUX上安装gstreamer,解决video.h找不到的错误
256 0
|
Linux
Linux: 环境变量PATH设置错误的补救
Linux: 环境变量PATH设置错误的补救
56 0
|
Ubuntu Linux 网络安全
MTPuTTY连接Ubuntu\Linux SSH登陆出现Access Denied错误
MTPuTTY连接Ubuntu\Linux SSH登陆出现Access Denied错误
1220 0
MTPuTTY连接Ubuntu\Linux SSH登陆出现Access Denied错误
|
存储 缓存 监控
关于Linux中使用USE(使用率/饱和度/错误)方法分析系统性能的一些笔记
如果说希望通过`USE`做一些调优的工作,我觉得需要一定的能力,但是可以通过`USE`来定位机器的性能瓶颈,做一些排故工作。比如机器上的应用发生某些已知的未知故障,比如客户感知卡顿,工单流转,服务编排,调度任务等特别慢的情况,希望确认是机器性能问题,还是应用程序问题,这个时候,使用`USE`方法是一个很好的策略。
393 0
关于Linux中使用USE(使用率/饱和度/错误)方法分析系统性能的一些笔记
|
Java Linux C语言
Linux错误总结
Linux错误总结
425 0
|
Linux 计算机视觉
Linux下OpenCV出现错误:ASSERT false in file qasciikey.cpp, line 501
Linux下OpenCV出现错误:ASSERT false in file qasciikey.cpp, line 501
131 2