小编Man*_*ana的帖子

UNIX域STREAM和DATAGRAM套接字之间的区别?

这个问题不是 STREAM类型和DATAGRAM类型INTERNET套接字之间的区别.我知道STREAM套接字使用TCP,数据报套接字使用UDP和所有TCP,UDP内容,按顺序到达的数据包,ACK,NACK等.我理解这些在互联网上的重要性.

Q1)当我创建一个本地套接字的UNIX域套接字时,如果套接字是STREAM套接字或DATAGRAM套接字,这将是多么重要.这种类型的套接字会将数据写入套接字文件,在这种情况下协议是否重要,因为我不通过网络传输数据?如果我使用基于UNIX的DATAGRAM套接字,在这种情况下是否有丢失数据的可能性?

Q2)UNIX DATAGRAM套接字是否提供比UNIX STREAM套接字更好的性能?

Q3)如何在我的应用程序中决定基于STREAM/DATAGRAM UNIX的套接字?


谢谢

unix sockets linux udp tcp

55
推荐指数
2
解决办法
3万
查看次数

SQLite DB中的-shm和-wal文件

我在运行wal_checkpoint(FULL)后使用cp commmand来备份SQLite DB.DB正在WAL模式下使用,因此我的文件夹中还有其他文件,如-shm和-wal.当我运行wal_checkpoint(FULL)时,WAL文件中的更改将提交到数据库.我想知道运行检查点后-wal和-shm文件是否被删除了.如果没有,那么它们包含什么?

我知道我的备份过程不好,因为我没有使用SQLite备份API.这是我的代码中的一个错误.

任何人都可以建议运行检查点后-shm和-wal文件包含哪些内容.

提供的任何链接都会有所帮助.

谢谢

c unix sqlite sqlite-journal-mode

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

32 位与 64 位

我有一个小小的困惑。
当我们谈论 32 位架构和 64 位架构时,我们真正的意思是什么。我们的意思是 32 位架构有 32 位寄存器或 32 位地址总线或 32 位数据总线。

一般暗示什么?

hardware cpu-architecture

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

地址比较和字符串存储

可能重复:
如何在C中编译字符串文字?

我在下面写了一些小代码.在这段代码中,我认为将比较第一个和第二个"hello"字符串的地址.我很困惑.首先,我认为两个字符串都将存储在只读存储器中,因此会有不同的地址.但执行后打印出"相等".

当我看到objdump时,我无法看到字符串你好.我知道我没有采用变量来存储它们,但是"hello"存储在哪里.

它会存储在STACK上吗?还是会存储在代码段?

#include<stdio.h>
int main()
{
    if ("hello" == "hello")
        printf("\n equal ");
    else
        printf("\n not equal");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我改变if条件时 if ("hello" == "hell1"),"不等于"被打印出来.同样,字符串的存储位置和方式如何.它会存储在STACK上吗?还是会存储在代码段?

如果有人在这里给我精心解答,我真的很感激.谢谢

c

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

C中的64位散列/摘要

我试图找出C中是否有任何用于计算64位哈希的API.我发现有些人使用前64位的MD5/SHA1等.这是一个好方法吗?

c encryption hash openssl

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