小编sun*_*nil的帖子

在htop中搜索特定的进程名称

我想通过在htop中搜索其名称来快速查找我的进程是否正在运行.我只能找到PID或逐个列出所有进程,这不方便.

htop

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

goto指令跳过可变长度数组

int main() {
    int sz = 10; 
    goto end;
    char bytes[sz];
end:
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在编译时遇到以下错误.我使用gcc和C99标准.

test.c: In function ‘main’:
test.c:3:2: error: jump into scope of identifier with variably modified type
test.c:5:1: note: label ‘end’ defined here
test.c:4:7: note: ‘bytes’ declared here
Run Code Online (Sandbox Code Playgroud)

c

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

Redis pubsub vs阻止操作

我该如何选择pubsub和redis的阻塞操作?

Redis提供阻塞操作BLPOP,阻止操作直到可以从列表中弹出元素.为什么我不应该使用它来实现功能PUBSUB.PUBSUB允许您定义比基本列表更高级别构造的通道.如果我的用例很简单,没有多个通道,我可以使用基本的阻塞操作.

publish-subscribe redis

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

fgets正在从已关闭的文件描述符中读取更多数据

我在linux上遇到了fgets()的一些问题.fgets从关闭的文件描述符返回数据.如果文件关闭,我希望它返回EOF.我能够提出我的问题的简化版本.

int main()
{
        int i=0, j;
        FILE *FD;
        char p[128];
        FD = fopen("junk", "r");
        while(fgets(p, sizeof(p), FD))
        {  
                close(fileno(FD));
                printf("lineno=%d\n", i++);
        }  
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望它只打印一行.这个问题有解决方法吗?

更新:正如有人在下面回答的那样,fgets正在缓冲文件并在FD关闭后返回数据.它正在缓冲4kB的数据.如果文件大小超过4k,则在读取4KB后获得EOF并且打印停止.否则如果文件大小感谢4k,它会打印到文件末尾.

c linux file-io fgets eof

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

标签 统计

c ×2

eof ×1

fgets ×1

file-io ×1

htop ×1

linux ×1

publish-subscribe ×1

redis ×1