小编use*_*178的帖子

linux的文件锁

我尝试使用临时文件:

char *temp = tempnam(NULL, "myapp_");
printf("Tempname: %s", temp)     // Prints /tmp/myapp_random
while (1) { }
Run Code Online (Sandbox Code Playgroud)

但当我检查/tmp(当应用程序仍在运行时),myapp_random不存在!

至于使用文件锁,我无法很好地掌握它,我试着看,<fcntl.h>但它似乎专注于文件的指定部分的锁.我只想将该文件完全用作锁(这就是为什么我更喜欢尝试临时文件的方法).

有任何想法吗?

c linux locking file

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

在套接字关闭时取消阻止recvfrom

假设我开始在端口上接收一个线程.套接字调用将阻止recvfrom.然后,不知何故在另一个线程中,我关闭套接字.

在Windows上,这将取消阻止recvfrom,我的线程执行将终止.

在Linux上,这不会解锁recvfrom,因此,我的线程永远不会做任何事情,并且线程执行不会终止.

任何人都可以帮助我解决Linux上发生的事情吗?当套接字关闭时,我希望recvfrom解除阻塞

我一直在阅读有关使用select()的内容,但我不知道如何在特定情况下使用它.

c sockets select recv

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

标签 统计

c ×2

file ×1

linux ×1

locking ×1

recv ×1

select ×1

sockets ×1