shell-出先段错误,好像是vfprintf的问题

问题描述

出先段错误,好像是vfprintf的问题

#include
#include
int main(char ip[20]){
FILE* fp=NULL;
fp=fopen("passwd.txt","r");
char buff[200];
int i;
for(i=0;;i++){
memset(buff,0,sizeof(buff));
if(fp==NULL)
break;
fgets(buff,10,fp);
printf("%s",buff);
char shell[200];
sprintf(shell,"/home/hht/workspeace/work1/ssh.sh%s%s",ip,buff);
system("shell");
}
}


至于shell那段,我完全不会,在现摸索现用,不知道对不对

abcdefg
段错误 (核心已转储)

我向让这个程序把passwd里面的一行一行密码抓出来,然后输进脚本里,让脚本用C语言的IP和密码来SSH

解决方案

http://outofmemory.cn/code-snippet/3254/c-usage-libssh2-yuancheng-execution-command
http://blog.csdn.net/wyc6668205/article/details/9179197

解决方案二:

#!/usr/bin/expect -f
set passwd $2
#密码
set host $1
#目标主机地址
set name root
#用户名

spawn ssh $host -l $name
expect "root@$host’s password:"
send "$passwdr"

send"unamen"
expect"LINUX"
send_user"success"

这是ssh.sh的代码,套进来的不知道对不对

时间: 2024-09-12 10:34:22

shell-出先段错误,好像是vfprintf的问题的相关文章

正则-如何用php匹配出这段代码?

问题描述 如何用php匹配出这段代码? 有这样一段代码 <div><div><span><span>网盘链接: </span> </span> <span><a href="/ntcweb?id=d866a750-9cec-430a-9ea0-5cfbd6a2007a&level=2&pg=webz&uID=thJP9WeIiHG9tvFy&g_ut=2&key=jg

段错误调试神器 - Core Dump详解

一.前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来.  gdb: 有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员. 我们还有更好的办法, 这就是core file.  ulimit: 如果想让系统在信号中断造成的错

用gdb调试程序笔记: 以段错误(Segmental fault)为例

用gdb调试程序笔记: 以段错误(Segmental fault)为例[转] 1.背景介绍2.程序中常见的bug分类3.程序调试器(如gdb)有什么用4.段错误(Segmental fault)介绍5.gdb调试入门  一.背景介绍这个笔记主要介绍开源的程序调试器(gdb)的入门知识,目的是使unix/linux环境的编程新手能够快速学会使用gdb调试程序的方法,同时也是对我使用gdb的一个经验总结.本文假设你能使用简单的unix/linux命令并能用gcc(GNU C Compiler, GN

定义一个bool变量之后出现段错误

问题描述 定义一个bool变量之后出现段错误 问题出外这一段,大概功能是输入一个"p 表达式",计算表达式的值,当代码如第一张图时,一个输出都没有,直接段错误:当代码如第二张图时,输入p 1+1,能输出011+1,后面就没办法输出了.第三张是expr函数 解决方案 就这些代码本身看不出问题,但是你调用了几个自己写的函数,看下是不是它们中的某个有问题. 最好调试下.段错误还是和内存分配有关. 解决方案二: 第二张图好像没传得上去,就是把printf args的那个注释去掉

段错误bug的调试

我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的.实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除.但是手工"除虫"(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个 内存访问越界的错误谈谈如何快速定位这些"段错误"的语句.下面将就以下的一个存在段错误的程序介绍几种调试方法:      1  dummy_function (

Linux下的段错误产生的原因及调试方法

Linux下的段错误产生的原因及调试方法     简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以

关于c语言解析json,nalloc段错误问题

问题描述 关于c语言解析json,nalloc段错误问题 如图,我现在有四条数据,主函数传进来,前三条没问题, 第四条的时候段错误 gdb显示段错误位置在malloc,求助,为什么会这样 解决方案 1.有这种可能,你目前的修改方法只是降低了问题出现的概率. 2.建议你还是找出内存越界的原因,如果实在不想找,或者不好找,建议你先预估一下输入的数据最大有多大,然后申请足够的内存. 3.不过对于一个优秀的程序员,查找出问题的真正原因对你的进步是非常有帮助的. 解决方案二: C语言解析JSONJson解

多线程段错误-多线程挂掉----哪个大神可以解决下,多谢啦!

问题描述 多线程挂掉----哪个大神可以解决下,多谢啦! 1 #include 2 #include 3 #include 4 #include 5 #define PAI 3.14159 6 void* area(void* arg){ 7 double r = (double)arg; 8 double* s=malloc(sizeof(double)); 9 s = PAI * r * r; 10 return s; 11 } 12 int main(void) { 13 printf("

使用libxml2库中的xmlSaveFormatFileEnc函数出现段错误

问题描述 使用libxml2库中的xmlSaveFormatFileEnc函数出现段错误 先贴上用gdb查看core的结果. 其中,#14对应的代码如下 if (UIE_SUCCESS != pIsmsActiveResource->IsmsActiveResourceXml()) 而#13的代码 pXmlManage = new CXmlIsmsActiveResource; //339 pXmlManage->Open(szXmlPathName); //341 pXmlManage-&g