小编joi*_*doi的帖子

C 从 FILE* 打印文件路径

FILE * fd = fopen ("/tmp/12345","wb");
Run Code Online (Sandbox Code Playgroud)

如果我有变量fd,我如何打印文件路径?(/tmp/12345) 在 Linux 环境中。

c linux printf fopen file

6
推荐指数
3
解决办法
1281
查看次数

C 用循环等待信号

在C Linux中,有没有办法像等待信号一样SIGUSR1并且SIGUSR2不循环?

例如,在这段代码中,我等待SIGUSR1SIGUSR2打印消息,但是当我想要时,我会在 true 时执行......

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

void signal_callback_handler(int signum)
{
   printf("Caught signal %d\n",signum); 
}

int main()
{
   signal(SIGUSR1, signal_callback_handler);
   signal(SIGUSR2, signal_callback_handler);
   while(1)
   {
      printf("Program processing stuff here.\n");
      sleep(1);
   }
   return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

我如何才能等待并且不做任何事情(在 true 时不做)直到SIGUSR1SIGUSR2到达?

例如 :

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

void signal_callback_handler(int signum)
{
   printf("Caught signal %d\n",signum); 
}

int main()
{
   signal(SIGUSR1, signal_callback_handler);
   signal(SIGUSR2, signal_callback_handler);

    printf("this …
Run Code Online (Sandbox Code Playgroud)

c linux signals signal-handling

5
推荐指数
1
解决办法
2万
查看次数

如果未检查函数返回值,如何强制编译错误?

如果我正在使用特定功能而不检查其返回值,我希望编译器发出错误。

我在Eclipse中使用GCC。

例如 :

int fun (){ return 3;}

void main ()
{
   printf("%d",fun ());
}
Run Code Online (Sandbox Code Playgroud)

我调用该函数fun并打印返回值,但不检查返回值。相反,我想强制执行以下操作:

int ret=fun();
if(ret != some_value) { /* Do something */ }
printf("%d",fun ());
Run Code Online (Sandbox Code Playgroud)

这可能吗?

c eclipse gcc compiler-errors return-value

3
推荐指数
1
解决办法
104
查看次数

C Linux 检查挂载中的可用空间

当我运行时df -h,我可以看到/dev我使用 6M 且大小为 40M ,可用大小为 34M 。

我怎样才能用c代码获取这些信息?

c linux mount

1
推荐指数
1
解决办法
345
查看次数