当前位置: 技术问答>linux和unix
fork()复制进程的问题。
来源: 互联网 发布时间:2016-06-23
本文导语: 我的问题:为什么下面的程序输出文件内容是 Test 1 2 3 .. Hello, hello Test 1 2 3 .. Hello, hello "Test 1 2 3.." 不是在fork()调用之前的已经输入到文件了吗,为什么会出现两次的? 程序如下: #include int main() { FILE *f...
我的问题:为什么下面的程序输出文件内容是
Test 1 2 3 ..
Hello, hello
Test 1 2 3 ..
Hello, hello
"Test 1 2 3.." 不是在fork()调用之前的已经输入到文件了吗,为什么会出现两次的?
程序如下:
#include
int main()
{
FILE *fp;
int pid;
char msg1[]="Test 1 2 3 ..n";
char msg2[]="Hello, hellon";
if((fp=fopen("testfile2","w"))==NULL)
return 0;
fprintf(fp,"%s",msg1);
if((pid=fork())==-1)
return 0;
fprintf(fp,"%s",msg2);
fclose(fp);
return 1;
}
Test 1 2 3 ..
Hello, hello
Test 1 2 3 ..
Hello, hello
"Test 1 2 3.." 不是在fork()调用之前的已经输入到文件了吗,为什么会出现两次的?
程序如下:
#include
int main()
{
FILE *fp;
int pid;
char msg1[]="Test 1 2 3 ..n";
char msg2[]="Hello, hellon";
if((fp=fopen("testfile2","w"))==NULL)
return 0;
fprintf(fp,"%s",msg1);
if((pid=fork())==-1)
return 0;
fprintf(fp,"%s",msg2);
fclose(fp);
return 1;
}
|
fprintf可能是基于fwrite的。
至于fwrite眼write的区别,楼主可以查查资料,或者看看这个:
http://blog.chinaunix.net/u2/88515/showart_1721586.html
至于fwrite眼write的区别,楼主可以查查资料,或者看看这个:
http://blog.chinaunix.net/u2/88515/showart_1721586.html