所以我想将一个变量从一个c程序传递给另一个c程序。
例如:
main()
{
char str[]="Hello,there!";
system("program2.exe");
}
我想在str[]
中使用program2.exe
。有没有办法将变量传递给另一个程序?
我使用文件从第一个程序写入数据并从第二个程序读取数据但我想知道有没有其他方法可以做到这一点?
使用文件将数据从程序传递到另一个文件是否合适?
答案 0 :(得分:2)
你不能在两个进程之间传递变量,因为系统上的每个进程通常都有自己的内存空间 - 每个变量都属于一个进程,因此不能从另一个进程访问(或者我相信) 。但您可以使用pipes在进程之间传递数据。
管道是由OS实现的缓冲区,是一种比文件更有效的在进程之间共享数据的方法(是的,您可以使用文件进行进程间通信)。这是因为文件必须在被访问之前写入磁盘,这使得进程间通信变慢。您还必须实现某种方法,以确保两个进程在读取和写入文件时不会损坏文件。
此外,管道可用于确保两个过程之间的连续通信,使其在许多情况下都有用。当使用半双工管道(上面链接)时,您可以为每个进程建立一个管道,以便在它们之间建立通信通道(即每个进程的单向通信通道)。
答案 1 :(得分:0)