iht*_*wot 0 c gdb concatenation
我只是试图在C中连接两个字符串,我不知道为什么,但我得到段错误.我使用gdb跟踪它到下面代码行的第一行.
strcat(tempString, "uptime");
pFile = fopen (tempString,"r");
Run Code Online (Sandbox Code Playgroud)
tempString ="/ proc /".我只想将字符串"uptime"附加到tempString,然后尝试打开文件(如果它存在于/ proc文件夹中).当strcat()调用memcpy()时,就会发生实际的段错误.
您没有在这些行之前显示某些代码,但可能使用了tempString
tempString = "/proc/";
Run Code Online (Sandbox Code Playgroud)
这使得它成为一个常量(具有常量的mem大小分配)
第二行将strcat尝试覆盖字符串常量,这将超出缓冲区的6个字节放入未知区域(*如果成功).
负责任地使用strcat:http://beej.us/guide/bgc/output/html/multipage/strcat.html
*正如JeremyP所指出的,如果它指向文本段,它是只读的并将导致段错误
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |