getchld 后打开文件 linux eclipse c 错误
open file linux eclipse c error after getchld
我只是想打开一个文件。
我已经这样做了 100 次,然后我向其他进程发送了 SIGCHLD 信号,我想在那之后我就再也无法打开那个文件了。
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define FLAGS IPC_CREAT | 0644
int main() {
int res =open("results.txt",FLAGS);
if(res== -1) { printf("error!!")} //prints it every time
return 0;}
..突然发生了..求助???
你对旗帜做了一些奇怪的事情。我认为您的意图是按照以下代码:
#define FLAGS O_CREAT
#define MODE 0644
int main()
{
int res =open("results.txt",FLAGS,MODE);
if(res== -1) { printf("error!!");} //prints it every time
return 0;
}
以下代码:
- 干净地编译
- 正确调用
open()
函数
- 正确显示错误信息
- 不
#include
没有使用的头文件
- 始终缩进代码
- 遵循公理:`每行只有一个语句,每个语句(最多)一个变量声明。
- 通过空行分隔代码块(for、if、else、while、do...while、switch、case、default)
- 为
main()
函数使用了正确的签名(发布的代码中的空括号意味着允许任意数量的参数,包括 0 个参数
- code should not return 0 success when an error occurs 所以使用
exit( EXIT_FAILURE )
现在代码:
#include <stdio.h> // perror()
#include <stdlib.h> // exit(), EXIT_FAILURE
#include <unistd.h> // open()
#include <fcntl.h> // O_CREAT
#define FLAGS O_CREAT
#define MODE 0644
int main( void )
{
int res =open("results.txt", FLAGS, MODE);
if(res== -1)
{
perror( "open for results.txt failed" );
exit( EXIT_FAILURE );
}
return 0;
}
我只是想打开一个文件。 我已经这样做了 100 次,然后我向其他进程发送了 SIGCHLD 信号,我想在那之后我就再也无法打开那个文件了。
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define FLAGS IPC_CREAT | 0644
int main() {
int res =open("results.txt",FLAGS);
if(res== -1) { printf("error!!")} //prints it every time
return 0;}
..突然发生了..求助???
你对旗帜做了一些奇怪的事情。我认为您的意图是按照以下代码:
#define FLAGS O_CREAT
#define MODE 0644
int main()
{
int res =open("results.txt",FLAGS,MODE);
if(res== -1) { printf("error!!");} //prints it every time
return 0;
}
以下代码:
- 干净地编译
- 正确调用
open()
函数 - 正确显示错误信息
- 不
#include
没有使用的头文件 - 始终缩进代码
- 遵循公理:`每行只有一个语句,每个语句(最多)一个变量声明。
- 通过空行分隔代码块(for、if、else、while、do...while、switch、case、default)
- 为
main()
函数使用了正确的签名(发布的代码中的空括号意味着允许任意数量的参数,包括 0 个参数 - code should not return 0 success when an error occurs 所以使用
exit( EXIT_FAILURE )
现在代码:
#include <stdio.h> // perror()
#include <stdlib.h> // exit(), EXIT_FAILURE
#include <unistd.h> // open()
#include <fcntl.h> // O_CREAT
#define FLAGS O_CREAT
#define MODE 0644
int main( void )
{
int res =open("results.txt", FLAGS, MODE);
if(res== -1)
{
perror( "open for results.txt failed" );
exit( EXIT_FAILURE );
}
return 0;
}