小编Hec*_*tor的帖子

C的printf和fprintf(stdout,)没有打印

这有点奇怪.我的代码没有输出我认为应该的东西.我在各个阶段添加了一些打印语句,以查看它出错的地方.依然没有.所以我在main的开头添加了一个printf语句.这就是我真的很困惑的地方.

所以我假设文件描述符发生了一些有趣的事情.我改成printffprintf.依然没有.打印到stderr fprintf确实有效!为什么会这样?

除了初始打印语句之外,从main中删除所有主体并返回打印.

int main(void) {
    fprintf(stdout, "STARTED!");
    //Create an Internet domain socket
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    //If this fails exit and print the error
    if (sockfd == -1) {
        printf("Error %d, cannot create socket", errno);
        return 1;
    }
    printf("SOCKET CREATED!");

    //Creates a socket address
    struct sockaddr_in  addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(8080);
    addr.sin_addr.s_addr = INADDR_ANY;

    //Attempts to bind to the socket address, again prints to error if this fails. …
Run Code Online (Sandbox Code Playgroud)

c printf file-descriptor

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

C - 包含依赖项的编译

我有一些代码,我想在一台我没有root权限的机器上运行.该机器没有运行此代码所需的一些库.

在编译时有没有办法包含所有依赖项?我意识到结果文件可能非常大.

c gcc static-linking

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

在循环内部的延迟任务中使用匿名方法

我有以下 -

for (int i = 0; i < N; ++i)
{
    var firstTask = DoSomething(...);

    var task = anotherTask.ContinueWith(
        (t) => ProcessResult(i, t.Result));
}
Run Code Online (Sandbox Code Playgroud)

问题是传递给ProcessResult的i的值似乎是它启动时的值,而不是创建它时的迭代值.

防止这种情况的最佳方法是什么?

c# lambda task async-await

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

如果在特定日期之后编译,则预处理器宏将删除代码

如果在特定日期之后编译,我希望不包括三行代码.原因是它们提供向后兼容性.为了支持客户端和嵌入之间的交错释放,现在必须在那里.

一旦下一个软件版本出现,将删除此支持以强制客户升级嵌入式软件.由于这是几个月之后,这些线路有被遗忘的风险.

理想情况下,我想要一个

#if __DATE__ > MyDate
    code here
#endif
Run Code Online (Sandbox Code Playgroud)

或类似的东西.有没有办法做到这一点?

*代码是用GCC编译的

gcc c-preprocessor

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

您应该将当前的应用程序状态存储在数据库中吗?

我已经开始从事一个项目,在该项目中 Postgres 数据库被用作系统架构中的一个组成部分。这迫使我放弃我以前认为数据库很好的观念,可以存储东西。

有一个 API 可以将传入的请求转换为数据库查询/更新。这会导致数据库中的触发器通知另一个应用程序相应地更新实际系统。

对我来说,这一切似乎都没有必要。这也是一个相当系统关键的架构,但我们无法保证了解底层系统故障,因为一切都是异步的。简而言之,我根本不喜欢它。我的观点是我们应该使用 API 和底层系统之间的直接通信立即从头开始,使用数据库仅存储持久状态更新/用户信息等。

我在这里真正想要的是有人在我最终与团队闹翻之前向我解释为什么我错了,但欢迎所有意见。

database architecture state

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

如何确定应用程序的控制台窗口何时获得或失去焦点?

有没有一种简单的方法可以做到这一点?或者至少检查控制台当前是否处于焦点状态?

想象一下像游戏这样的东西(这里不是这种情况,但类比成立) - 如果它可以自动暂停,那将会很有用。我需要类似的东西。

.net c# console

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

查询以过滤掉否定的行

我需要过滤掉具有否定值的行.即我想删除一列匹配的所有行,并且有两行具有否定值.即来自

ID, Val, Details
0,   4,  "Details 0 1..."
1,   5,  "Details 1 1..."
1,   7,  "Details 1 2..."
1,  -5,  "Details 1 3..."
2,   9,  "Details 2 1..."
Run Code Online (Sandbox Code Playgroud)

我想要

ID, Val, Details
0,   4,  "Details 0 1..."
2,   9,  "Details 2 1..."
Run Code Online (Sandbox Code Playgroud)

因为行1,5 ...和1,-5,...否定将ID标记为无效.我很难找到一个干净的方法来做到这一点.

sql sql-server

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

找到满足模数的最小值

我遇到的问题是x =(16807 xk)%65536

即16807k≡x(mod 65536)

我需要计算k知道x.到目前为止,我的最大努力是一种蛮力.有没有数学方法来计算k?如果不是我的当前代码的任何优化将不胜感激.

t = x;
while ( t += 15115 ) // 16807k = 65536n + x - this is the n
{
    if (t%16807 == 0)
    return t/16807;
}
return x;
Run Code Online (Sandbox Code Playgroud)

编辑:更改+ =到15115

c math optimization hash modulus

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