小编Rap*_*ens的帖子

为什么在布尔值上同步不是一个好习惯?

我的建筑师总是说

永远不要在布尔上同步

我无法理解其中的原因,如果有人可以用一个例子来解释为什么它不是一个好的做法,我会非常感激. 参考样本代码

private Boolean isOn = false;
private String statusMessage = "I'm off";
public void doSomeStuffAndToggleTheThing(){

   // Do some stuff
   synchronized(isOn){
      if(isOn){
         isOn = false;
         statusMessage = "I'm off";
         // Do everything else to turn the thing off
      } else {
         isOn = true;
         statusMessage = "I'm on";
         // Do everything else to turn the thing on
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading boolean synchronize

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

如何在编译时检查python API的版本?

我在C中编写了一个python模块.需要为python版本2.4,2.5,2.6和2.7编译模块.

现在我遇到了问题,在python 2.5中他们定义Py_ssize_t了列表的大小,但在2.4中他们只是使用了int.

所以我的问题是:有没有一种简单的方法来检查我是否在编译时使用版本2.4或2.5的API,所以我可以编写一个小宏?

例如:

#if PY_MINOR < 5
typedef int Py_ssize_t;
#endif
Run Code Online (Sandbox Code Playgroud)

c python

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

如何:仅在电子邮件中为Vim设置咒语?

谷歌在这里并不是很有帮助.我想用:set spellon 撰写电子邮件,但对于所有其他文件,:set spell应该关闭.我正在使用mutt,而Vim则是编写电子邮件的编辑器.

事实上,我很好奇,Vim怎么知道这是我正在撰写的电子邮件?是否有正在编辑的文件类型的命令行参数?mutt怎么知道传递什么?

email vim spell-checking mutt

6
推荐指数
2
解决办法
2129
查看次数

如何在C中的FreeBSD中获取进程的当前工作目录?

目前我正在尝试将用 C 编写的终端模拟器从 Linux 移植到 FreeBSD。但是终端会尝试从父进程获取当前工作目录 (CWD)。

它通过访问/proc/$PID/cwd.

现在我正在寻找一种方法来用在 FreeBSD 上运行的东西来替换这个功能。

那么如何从 FreeBSD 的进程中获取 CWD?

甚至有符合 POSIX 的解决方案吗?

我知道我可以从我的进程中获取 CWD,getcwd但我需要父进程的 CWD,我只知道 PID。

c freebsd

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

这段代码可以与fgets一起使用吗?

以下代码适用scanf,但我不知道如何使它fgets(搜索总是失败),你能帮我吗(我是C的初学者)?

如果可能的话,你能告诉我为什么它似乎没有用fgets吗?

#include <stdio.h>
#include <string.h>




char tracks[][80] = {
    "I left my heart in Harvard Med School",
    "Newark, Newark - a wonderful town",
    "Dancing with a Dork",
    "From here to maternity",
    "The girl from Iwo Jima",
};


int main(){
    char word[80];
    puts("Hello, type a word: ");
    fgets(word, 80, stdin);
//    scanf("%79s", word);

     for( int i= 0; i < 5; i++){
        if( strstr(tracks[i], word) ){
            printf("Found the track: %s\n", tracks[i]);
            break;
        }
     }


    return …
Run Code Online (Sandbox Code Playgroud)

c fgets

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

标签 统计

c ×3

boolean ×1

email ×1

fgets ×1

freebsd ×1

java ×1

multithreading ×1

mutt ×1

python ×1

spell-checking ×1

synchronize ×1

vim ×1