小编bad*_*eux的帖子

dev文件如何工作?

来自linux的人如何制作/dev文件.你可以写信给他们并立即删除.我可以想象一些程序不断读取一些开发文件:

FILE *fp;
char buffer[255];
int result;
fp = fopen(fileName, "r");
if (!fp) {
    printf("Open file error");
    return;
}
while (1)
{

    result = fscanf(fp, "%254c", buffer);
    printf("%s", buffer);
    memset(buffer, 0, 255);
    fflush(stdout);
    sleep(1);
}
fclose(fp);
Run Code Online (Sandbox Code Playgroud)

But how to delete content in there? Closing a file and opening them once again in "w" mode is not the way how they done it, because you can do i.e. cat > /dev/tty

c linux file udev

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

国家monad的未来

我想使用State monad来实现第三方API提供的数据的缓存.让我们想象getThirdPartyData(key: String)首先检查缓存的方法,然后如果它不存在那么应该向API发出请求.我想到的第一个也是最天真的实现是将状态包含在Future中 -

Future[State[Cache, ThirdPartyData]]
Run Code Online (Sandbox Code Playgroud)

但这不正确,因为当请求失败时,您将丢失缓存(getThirdPartyData将返回Failure).

我想到的第二个选择是延伸,或者更确切地说重新定义状态monad - s => Future[(s,a)]而不是s => (s,a),但我认为它是非常受欢迎的问题,所以scalaz可能有一些已经定义的方法来解决这个问题.

任何帮助非常感谢!

monads functional-programming scala scalaz

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

领域中的反向关系

让我们假设两个表BoxItem.盒子可能有很多物品,一件物品只有一个盒子.我想获取所有包含给定数组的项目的项目.我怎么能这样做?在CD中我会通过Item类中的谓词和属性来表示,它代表与Box的连接.

我使用的是0.81版本

realm

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

标签 统计

c ×1

file ×1

functional-programming ×1

linux ×1

monads ×1

realm ×1

scala ×1

scalaz ×1

udev ×1