URN Logo
UNIX Resources » Linux » China Linux Forum » C/C++编程版 » 5 » 关于文件之间变量共享的问题?
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  TI专版
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
关于文件之间变量共享的问题?
关于文件之间变量共享的问题? - ubuntu [2007-11-12 19:23 | 1,046 byte(s)]
 
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 09:48 | 168 byte(s)]
 
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 09:59 | 40 byte(s)]
 
 
Re: 关于文件之间变量共享的问题? - Atu [2007-11-28 17:39 | 64 byte(s)]
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 10:06 | 146 byte(s)]
 
Re: 关于文件之间变量共享的问题? - r00t [2007-11-12 21:59 | 34 byte(s)]
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 09:45 | 189 byte(s)]
 
Re: 关于文件之间变量共享的问题? - r00t [2007-11-13 10:15 | 134 byte(s)]
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 10:31 | 136 byte(s)]
 
Re: 关于文件之间变量共享的问题? - xtang [2007-11-14 02:07 | 311 byte(s)]
 
总结得好。 - r00t [2007-11-15 01:33 | 0 byte(s)]
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-14 09:41 | 24 byte(s)]
 
Re: 关于文件之间变量共享的问题? - r00t [2007-11-13 11:02 | 215 byte(s)]
 
Re: 关于文件之间变量共享的问题? - ubuntu [2007-11-13 11:27 | 20 byte(s)]
 
Re: 关于文件之间变量共享的问题? - r00t [2007-11-13 11:36 | 22 byte(s)]
 
Subject: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-12 19:23    Length: 1,046 byte(s)
[Original] [Print] [Top]
网上说用extern关键字可以实现文件之间的变量共享,即直接可以引用另一个文件中已存在的变量!
但我一直也没试通!

比如有下面两个文件t1.c:
#include <stdio.h>
#include <stdlib.h>
int data = 12;
int main(void){
printf("data is: %d ",data);
return 0;
}

和t2.c:
#include <stdio.h>
#include <stdlib.h>
extern int data;
int main(void){
printf("data is: %d ",data);
return 0;
}
我希望运行t2程序时也能输出12,但t2.c却一直编译通不过,信息如下:
zwang@wzc:~/Desktop$ gcc t2.c -o t2
/tmp/ccsH2Pdi.o: In function `main':t2.c:(.text+0x1d):对‘data’未定义的引用
collect2: ld 返回 1

请大侠解释一下这是什么原因?
该如何获得其它文件中的变量的值?
多谢!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: r00t    Posted: 2007-11-12 21:59    Length: 34 byte(s)
[Original] [Print] [Top]
编译通不过是因为有两个main()函数。
----
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: IN_FLAMES    Posted: 2007-11-13 09:38    Length: 22 byte(s)
[Original] [Print] [Top]
你打算编译成几个程序?
----
CLF最大的马甲
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 09:45    Length: 189 byte(s)
[Original] [Print] [Top]
多谢大侠的回复!去掉一个main之后确实可以编译通过了!

我还有个疑问,就是还让这两个c文件保持相对独立(仍然保留各自的main函数),那么有没有可能获得另一个文件中的变量的值呢?
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 09:48    Length: 168 byte(s)
[Original] [Print] [Top]
>>你打算编译成几个程序?
其实我原本打算是编译成两个的,就是将这两个c文件单独看待!
不知能否获得另一个文件中的变量的值!请大侠不吝赐教!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: IN_FLAMES    Posted: 2007-11-13 09:53    Length: 10 byte(s)
[Original] [Print] [Top]
当然不可以
----
CLF最大的马甲
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 09:59    Length: 40 byte(s)
[Original] [Print] [Top]
多谢大侠的回复!
啊,太失望了!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: IN_FLAMES    Posted: 2007-11-13 10:00    Length: 22 byte(s)
[Original] [Print] [Top]
你的老板一定比你更失望
----
CLF最大的马甲
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 10:06    Length: 146 byte(s)
[Original] [Print] [Top]
这到不至于,这不是我们项目问题!
这是一个与坛友讨论未果,而又非常想知道结论的问题!
虽然答案是否定的,但总比没答案好,再次感谢!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: r00t    Posted: 2007-11-13 10:15    Length: 134 byte(s)
[Original] [Print] [Top]
您指的是在两个进程之间共享数据?那得通过进程间通讯方式了,比如共享内存方式。

源代码级的变量访问应该是没有道理的吧?
----
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 10:31    Length: 136 byte(s)
[Original] [Print] [Top]
是不是需要建立socket连接进行访问?
抑或是还有什么其它进程间通讯?
由于这些方面没有实战的经验,所以非常菜,大侠莫见怪!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: r00t    Posted: 2007-11-13 11:02    Length: 215 byte(s)
[Original] [Print] [Top]
如果是同一台机器上的两个进程之间共享数据的话,有很多种方式,socket是一种,但是很麻烦,代价很高,用共享内存方式很简单,您可以查查<<UNIX网络编程>>第二卷,Richard Stevens写的,很详细的介绍。
----
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-13 11:27    Length: 20 byte(s)
[Original] [Print] [Top]
诲人不倦,非常感谢!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: r00t    Posted: 2007-11-13 11:36    Length: 22 byte(s)
[Original] [Print] [Top]
也没帮上什么忙,呵呵。
----
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: xtang    Posted: 2007-11-14 02:07    Length: 311 byte(s)
[Original] [Print] [Top]
同一机器里,不同进程间“共享”变量的话,只有使用共享内存。

同一机器里,不同进程间“传递”变量(数据)的话,可以用共享内存,其它还有Unix Domain Socket,消息队列,命名/匿名管道。当然也可以写到文件里让另一进程来读。

不同机器的话,只有用网络(socket)编程了。

[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: ubuntu    Posted: 2007-11-14 09:41    Length: 24 byte(s)
[Original] [Print] [Top]
非常详细,多谢大侠指教!
----
嵌入式开发联盟http://www.embedlinux.cn/
[Original] [Print] [Top]
Subject: 总结得好。
Author: r00t    Posted: 2007-11-15 01:33    Length: 0 byte(s)
[Original] [Print] [Top]
----
[Original] [Print] [Top]
Subject: Re: 关于文件之间变量共享的问题?
Author: Atu    Posted: 2007-11-28 17:39    Length: 64 byte(s)
[Original] [Print] [Top]
> 你的老板一定比你更失望

你太有才了!
[Original] [Print] [Top]
« Previous thread
关于路由器数据包分片发送
C/C++编程版
5
Next thread »
elf文件可以加入自定义的元数据吗?
     

Copyright © 2007~2009 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
webmaster: webmaster@unixresources.net
This page created on 2009-09-07 16:43:27, cost 0.023313999176 ms.