linux usr bin test,Linux中fork系統調用編譯出錯/usr/bin/ld: cannot open output file fork_test: Is a directory ...
書上抄了一個fork系統調用講解的例子,代碼如下:#include #include #include #include #include #include #include #include #include int main(void){char buf[100] = {0};pid_t cld_pid;int fd;int status;if((fd = open("temp", O_CRE
書上抄了一個fork系統調用講解的例子,代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(void)
{
char buf[100] = {0};
pid_t cld_pid;
int fd;
int status;
if((fd = open("temp", O_CREAT | O_RDWR | O_TRUNC, 0664)) == -1)
{
perror("創建文件");
exit(1);
}
strcpy(buf, "父進程數據");
if((cld_pid = fork()) == 0)
{
strcpy(buf, "子進程數據");
puts("子進程正在工作:");
printf("子進程 PID 是%d\n",getpid());
printf("父進程 PID 是%d\n",getppid());
write(fd, buf, strlen(buf));
close(fd);
exit(0);
}
else
{
puts("父進程正在工作:");
printf("父進程 PID 是%d\n", getppid());
printf("子進程 PID 是%d\n", getpid());
write(fd, buf, strlen(buf));
close(fd);
}
wait(&status);
return 0;
}
編寫結束,運行gcc -o fork_test fork_test.c,就是報錯
/usr/bin/ld: cannot open output file fork_test: Is a directory
collect2: ld 返回 1
代碼檢查了好幾次都沒有Wen題,百度也百思不得其解。
打算刪除代碼Wen件夾時,發現fork_test.c沒有存到fork_test wen件夾中(他倆同時出現在一個目錄中),順手放進去又編譯了一次,居然通過了。
父進程正在工作:
父進程 PID 是7412
子進程 PID 是7493
子進程正在工作:
子進程 PID 是7494
父進程 PID 是7493
原因不知Wei什么?至少是個教訓。
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐



所有评论(0)