当前位置: 首页 > news >正文

值得做的网站成人大专

值得做的网站,成人大专,成都的做网站公司,um插件 wordpress//-I意为include 指定头文件搜索路径 -l:告诉编译器链接时需要的库 gcc *.c -I /usr/include/fastdfs/ -I /usr/include/fastcommon/ -l fdfsclient//调试gcc -g -rdynamic main.c如何解决 “ 段错误(吐核) ” ??? 【线上排错】记…
//-I意为include 指定头文件搜索路径 -l:告诉编译器链接时需要的库
gcc *.c -I /usr/include/fastdfs/ -I /usr/include/fastcommon/ -l fdfsclient//调试gcc -g -rdynamic main.c

如何解决 “ 段错误(吐核) ” ???
【线上排错】记一次Linux的“段错误(吐核)”排查步骤
Centos 开始Core调试
[Linux] 什么是 段错误(吐核)?
Linux环境下段错误的产生原因及调试方法小结

跟着视频操作,运行代码出现

[fish@localhost mytest]$ ./a.out
段错误(吐核)

参考了上述连接不断调试,并且反复校对代码和视频以及资料中的差别,无果
最后得到的调试信息是

(gdb) run
Starting program: /home/fish/mytest/./a.out 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7874a4a in __GI__IO_str_overflow (fp=0x7fffffffd2c0, c=91) at strops.c:133
133         *fp->_IO_write_ptr++ = (unsigned char) c;

个人感觉是哪个地方的读写出了问题,导致内存访问溢出了之类的,但是没找到具体是哪个语句的调用出了问题。先记一下,后续有时间再调。要是有知道哪儿出问题的大佬,请不吝赐教!
对应调用出错位置代码:

(gdb) l
128               fp->_IO_write_end = fp->_IO_buf_end;
129             }
130         }
131     
132       if (!flush_only)
133         *fp->_IO_write_ptr++ = (unsigned char) c;
134       if (fp->_IO_write_ptr > fp->_IO_read_end)
135         fp->_IO_read_end = fp->_IO_write_ptr;
136       return c;
137     }
(gdb) l
138     libc_hidden_def (_IO_str_overflow)
139     
140     int
141     _IO_str_underflow (_IO_FILE *fp)
142     {
143       if (fp->_IO_write_ptr > fp->_IO_read_end)
144         fp->_IO_read_end = fp->_IO_write_ptr;
145       if ((fp->_flags & _IO_TIED_PUT_GET) && (fp->_flags & _IO_CURRENTLY_PUTTING))
146         {
147           fp->_flags &= ~_IO_CURRENTLY_PUTTING;

贴下源码:
main.c

#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include "fdfs_upload_file.h"int main(int argc,const char* argv[]){char fileID[1024] = {0};upload_file1("/etc/fdfs/client.conf","main.c",fileID);printf("fileID:%s\n",fileID);printf("==================\n");upload_file2("/etc/fdfs/client.conf","main.c",fileID,sizeof(fileID));printf("fileID:%s\n",fileID);return 0;
}

fdfs_upload_file.h

#ifndef _FDFS_UPLOAD_FILE_H
#define _FDFS_UPLOAD_FILE_Hint upload_file1(const char* confFile, const char* localFile, char* fileID);
int upload_file2(const char* confFile, const char* localFile, char* fileID, int bufLen);#endif

fdfs_upload_file.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/wait.h>
#include "fdfs_client.h"
#include "fdfs_upload_file.h"int upload_file1(const char* confFile,const char* localFile,char* fileID)
{char group_name[FDFS_GROUP_NAME_MAX_LEN + 1];ConnectionInfo *pTrackerServer;int result;int store_path_index;ConnectionInfo storageServer;if ((result=fdfs_client_init(confFile)) != 0){return result;}pTrackerServer = tracker_get_connection();if (pTrackerServer == NULL){fdfs_client_destroy();return errno != 0 ? errno : ECONNREFUSED;}*group_name = '\0';if ((result=tracker_query_storage_store(pTrackerServer, \&storageServer, group_name, &store_path_index)) != 0){fdfs_client_destroy();fprintf(stderr, "tracker_query_storage fail, " \"error no: %d, error info: %s\n", \result, STRERROR(result));return result;}result = storage_upload_by_filename1(pTrackerServer, \&storageServer, store_path_index, \localFile, NULL, \NULL, 0, group_name, fileID);if (result == 0){printf("%s\n", fileID);}else{fprintf(stderr, "upload file fail, " \"error no: %d, error info: %s\n", \result, STRERROR(result));}tracker_disconnect_server_ex(pTrackerServer, true);fdfs_client_destroy();return result;
}//多进程实现
int upload_file2(const char* confFile,const char* localFile,char* fileID,int bufLen){//创建管道int fd[2];int ret=pipe(fd);if(ret==-1){perror("pipe reeor");exit(0);}//创建子进程pid_t pid = fork();//如果是子进程if(pid==0){//3.标准输出重定向 -》管道的写端dup2(fd[1],STDOUT_FILENO);//4.关闭读端close(fd[0]);//5。执行execlp命令execlp("fdfs_upload_file","xxx",confFile, localFile, NULL);perror("execlp error");}else{//父进程,读管道//关闭写端close(fd[1]);read(fd[0],fileID,bufLen);//回收pcb-》子进程wait(NULL);}
}
http://www.hengruixuexiao.com/news/38924.html

相关文章:

  • 易优建站网络营销课程作业
  • 企业网站设计期末考试网站优化流程
  • 个人网站可以做资讯吗?网络营销的发展历程
  • 环保h5微网站网络营销策划方案书
  • 网站做备案需要多久如何做网址
  • 小程序模板教程北京公司排名seo
  • 山西建筑劳务网站最大的中文搜索引擎
  • 最简单的网站设计网络营销工具
  • 电商商城平台定制成都抖音seo
  • 布吉网站建设方案郑州网络营销推广公司
  • jsp动态网站开发教科书抖音搜索seo排名优化
  • 网页设计毕业论文参考文献宁波seo基础入门
  • 泰安华航网络有限公司快速seo软件
  • 海口云建站模板郑州网站建设
  • 如何看一个网站是谁做的10000个免费货源网站
  • 黑龙江做网站公司百度学术论文查重官网入口
  • 甘肃泾川县门户网站两学一做seo1短视频网页入口营销
  • 哪里能找到免费网站seo网站搭建是什么
  • 网站建设合同违约少儿编程培训机构排名前十
  • 安徽博物馆网站建设的调研报告双11各大电商平台销售数据
  • 怎么样做一家装修竞标网站广州新闻最新消息今天
  • 南昌网站开发公司哪家公司好百度大搜推广和百度竞价
  • 做一个网站系统多少钱搜索引擎排名竞价
  • wordpress新浪微博图床插件百度推广关键词怎么优化
  • 自做闪图网站新站点seo联系方式
  • 最全做暖暖网站搜索引擎排名营销
  • 胡志明网站建设写一篇软文1000字
  • 网站没有备案怎么做支付软文营销成功案例
  • mp3网站源码郑州有没有厉害的seo
  • 营销型网站制作价格it培训机构培训费用