小编And*_*fas的帖子

更改文件描述符的读/写权限

我正在研究一个Linux C项目,我在使用文件描述符时遇到了麻烦.

我有一个孤立文件描述符(文件是open()'然后取消链接()'但fd仍然很好)具有只写权限.原始后备文件具有完全权限(使用S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH创建),但是文件是使用O_WRONLY打开的.是否可以复制文件描述符并将副本更改为O_RDWR?

psudo代码:


//open orphan file
int fd = open(fname, O_WRONLY, ...)
unlink(fname)
//fd is still good, but I can't read from it

//...

//I want to be able to read from orphan file
int fd2 = dup(fd)
//----change fd2 to read/write???----

Run Code Online (Sandbox Code Playgroud)

提前致谢!-安德鲁

c linux unlink dup

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

select() - 有能力的计时器

select()是一个很棒的系统调用.您可以打包任意数量的文件描述符,套接字描述符,管道等,并在输入可用时以同步方式获得通知.

有没有办法创建一个interval/oneshot计时器并与select()一起使用?这将使我免于拥有多个线程用于IO和计时.

c linux select system-calls

10
推荐指数
2
解决办法
4176
查看次数

正则表达式组捕获多个匹配

快速正则表达式问题.
我试图在python中捕获捕获组的多个实例(不要认为它是特定于python的),但后续捕获似乎覆盖了之前的捕获.

在这个过于简化的示例中,我实际上是在尝试拆分字符串:

x = 'abcdef'
r = re.compile('(\w){6}')
m = r.match(x)
m.groups()     # = ('f',) ?!?
我想得到('a', 'b', 'c', 'd', 'e', 'f'),但因为正则表达式覆盖了后续的捕获,我得到了('f',)

这是正则表达式应该如何表现?有没有办法做我想要的,而不必重复六次语法?

提前致谢!
安德鲁

python regex

9
推荐指数
2
解决办法
9587
查看次数

Java丢弃一半的UDP数据包

我有一个简单的客户端/服务器设置.服务器在C中,查询服务器的客户端是Java.

我的问题是,当我通过连接发送带宽密集型数据时,例如视频帧,它会丢弃一半的数据包.我确保在服务器端正确分割udp数据包(udp的最大有效负载长度为2 ^ 16).我验证了服务器正在发送数据包(printf是sendto()的结果).但是java似乎没有获得一半的数据.

此外,当我切换到TCP时,所有视频帧都通过但延迟开始累积,在运行几秒后增加几秒延迟.

我有什么明显的遗失吗?我似乎无法弄清楚这一点.

c java networking udp datagram

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

用于分析的Linux库

是否有可以在正在运行的进程中运行性能分析的Linux库?

我有一个相当大的linux程序,它基于脚本.根据脚本,程序可能会有非常不同的行为(和性能问题).最好的是一个低开销性能库,我可以嵌入到同一个进程中,监视并向进程提供关于它自身性能的实时反馈.

Oprofile会非常棒,如果我可以在程序中启动它并将其与该程序隔离开来.从我读过的文档中,似乎不可能.

有谁知道任何这样的图书馆?

谢谢!
安德鲁克洛法斯

c linux profiler oprofile

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

标签 统计

c ×4

linux ×3

datagram ×1

dup ×1

java ×1

networking ×1

oprofile ×1

profiler ×1

python ×1

regex ×1

select ×1

system-calls ×1

udp ×1

unlink ×1