C 函数值赋予传递的问题?

hc_net 2014-09-20 11:12:11
例:
#include <linux/file.h>
#include <linux/ip.h>
#include <net/tcp.h>

static void conn_rsp_timer_fn(unsigned long arg)
{
struct iscsi_conn *conn = (struct iscsi_conn *)arg;
struct iscsi_cmnd *cmnd;

char name[]="";

if (unlikely(sk->sk_state != TCP_ESTABLISHED)) {
if (!conn->closing) {
PRINT_ERROR("Connection with initiator %s "
"unexpectedly closed!",
conn->session->initiator_name);

sprintf(name,"%s",conn->session->initiator_name); // 这里的获取字符串的字符如何传递到下一个函数中去???
}
} else
make_conn_rd_active(conn);

return;
}

/*
sprintf(name,"%s",conn->session->initiator_name); // 这里的获取字符串的字符如何传递到下一个函数中去???
*/

int conn_free(struct conn *conn)
{
char *IP[];

printk("IP ADD: %s",IP);

}


请教如何能把 sprintf(name,"%s",conn->session->initiator_name); 这里获取到的 name 值赋予到到 int conn_free(struct conn *conn) 函数中的 IP 这个字符串值来用?

简单的说就是把上面那 函数得到 name 的值,传递到到下面那个 函数中作为 值使用

就是如何让: IP 值 = name 值

谢谢
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hc_net 2014-09-20
  • 打赏
  • 举报
回复
我主要是要获取 sprintf 这个格化输出的字符串值,在其它的的函数中,使用,刚开始没想到用,可以用全局变量来定义,更简单 谢谢了 二楼的方法也可以,只要稍修改一下就可以了,

static char * conn_rsp_timer_fn(unsigned long arg)
{
static char name[512];
.............
}

int conn_free(struct conn *conn)
 {
     char *IP =  conn_rsp_timer_fn(arg);

    printk("Client IP %s",IP);      

.............................
 }

勤奋的小游侠 2014-09-20
  • 打赏
  • 举报
回复
随便定义一个全局变量就可以解决这个问题?你有什么困难吗啡
china_hcnet 2014-09-20
  • 打赏
  • 举报
回复
找个test.h 头文件定义全局变量 extern char name[]; test.c 头部定义 char name; OK了。。可以在任意函数里调用这个定义的值的, sprintf(name,"取到名:%s",conn->session->initiator_name); 收工
hc_net 2014-09-20
  • 打赏
  • 举报
回复
有没有类于shell 这样的可以定义全局变量这样更新比如在代码顶部: 定义: char *name[]; 这样name 这个就可供所有函数里调用的值 谢谢
hc_net 2014-09-20
  • 打赏
  • 举报
回复
conn_rsp_timer_fn(unsigned long arg , char *name) 编译报错char*name
starytx 2014-09-20
  • 打赏
  • 举报
回复
可以给conn_rsp_timer_fn函数增加一个char * 形参,作为一个输出参数,然后在conn_free 中也增加一个char *形参,作为输入参数来调用,简单示例如下: conn_rsp_timer_fn(unsigned long arg , char *name) ... conn_free(struct conn *conn ,char *ip) ... 使用时: char name[200] = {0}; conn_rsp_timer_fn(xx ,name); conn_free(xx ,name);

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧