Articles of primefaces

如何在Atom中打开terminal?

如何在Atom中打开terminal? 我需要安装一个插件吗? 如果可能的话,我也想知道如何使用快捷键来打开terminal。

GLIB:g_atomic_int_get变成NO-OP?

在一段较大的代码中,我注意到glib中的g_atomic_ *函数没有达到我所期望的,所以我写了这个简单的例子: #include <stdlib.h> #include "glib.h" #include "pthread.h" #include "stdio.h" void *set_foo(void *ptr) { g_atomic_int_set(((int*)ptr), 42); return NULL; } int main(void) { int foo = 0; pthread_t other; if (pthread_create(&other, NULL, set_foo, &foo)== 0) { pthread_join(other, NULL); printf("Got %d\n", g_atomic_int_get(&foo)); } else { printf("Thread did not run\n"); exit(1); } } 当我用GCC的'-E'选项(在预处理之后停止)编译这个时,我注意到对g_atomic_int_get(&foo)的调用变成: (*(&foo)) 和g_atomic_int_set(((int *)ptr),42)已经变成: ((void) […]

内存屏障和atomic_t在Linux上

最近,我正在阅读一些Linux内核空间代码,我看到了这一点 uint64_t used; uint64_t blocked; used = atomic64_read(&g_variable->used); //#1 barrier(); //#2 blocked = atomic64_read(&g_variable->blocked); //#3 这段代码的语义是什么? 是否确定#1在#3之前执行#2。 但是我有点困惑,因为 #A在64位平台上,atomic64_readmacros被扩展为 used = (&g_variable->used)->counter // where counter is volatile. 在32位平台上,它被转换为使用lockingcmpxchg8b 。 我假设这两个语义相同,对于64位版本,我认为这意味着: 我们可以排除地址不alignment,字大小大于CPU本地字大小的情况。 没有优化 ,强制CPU从内存位置读取。 atomic64_read没有语义保存阅读顺序! 看到这个 #B 屏障macros被定义为 /* Optimization barrier */ /* The "volatile" is due to gcc bugs */ #define barrier() __asm__ __volatile__("": : […]

以自动方式移动目录

我有两个目录在同一个父目录。 调用父目录库和子目录alpha和bravo 。 我想用bravoreplacealpha 。 最简单的方法是: rm -rf alpha mv bravo alpha mv命令是primefaces的,但rm -rf不是。 在bash中有一个简单的方法来自动地用布拉沃代替阿尔法 ? 如果不是,有没有复杂的方法? 附录: 由此,如果该目录不存在很短的时间,这不是一个不可逾越的问题。 只有一个地方试图访问alpha,并在做任何关键的事情之前检查alpha是否存在。 如果不是,则会给出错误消息。 但是,如果有办法做到这一点,那就太好了。 :)也许有一些方法可以直接修改inode,或者…

如何做一个primefaces增量和获取在C?

我正在寻找一种方法来自动递增一个短,然后返回该值。 我需要在内核模式和用户模式下都这样做,所以在Linux下,在Intel32位体系结构下。 不幸的是,由于速度要求,互斥锁并不是一个好的select。 有没有其他方法可以做到这一点? 在这一点上,似乎唯一的select是内联一些程序集。 如果是这样的话,有人可以指点我适当的指示吗?

在Linux上相互等效

在C ++ Linux应用程序中,获取Win32上的Interlocked函数提供的function的最简单方法是什么? 具体来说,一个轻量级的方式来自动增加或添加32或64位整数?

导致非primefaces的破裂

嗨我想要一个int和一个浮动的例子,导致用非primefaces值写入撕裂。 我似乎无法重现这一点。 这似乎是非常罕见的事情,或者我做错了什么。 这是我的testing代码,从不打印。 有什么问题吗? #include <windows.h> #include <tchar.h> #include <strsafe.h> #define MAX_THREADS 64 #define BUF_SIZE 255 DWORD WINAPI MyThreadFunction( LPVOID lpParam ); void ErrorHandler(LPTSTR lpszFunction); // Sample custom data structure for threads to use. // This is passed by void pointer so it can be any data type // that can be passed using […]

如何在Windows上创build,然后primefaces重命名文件在Java?

我正在尝试使用Java在Windows上正确执行“写入临时文件并重命名”。 如何在Java中自动重命名文件,即使dest文件已经存在? build议重命名文件是“primefaces操作”(无论“primefaces”实际上是什么意思)。 https://stackoverflow.com/a/20570968/65458build议编写tmp文件,重命名是跨平台的,并确保最终文件不存在或可以由其他进程处理。 所以我试图实际执行这种方法。 以下是我的尝试总结。 对于实际的问题 – 跳到底部。 写方法 我尝试了各种写入和重命名文件的方法( content和charset分别是String和Charset ): 使用java.nio.file.Files : Files.copy(new ByteArrayInputStream(content.getBytes(charset)), tmpFile); Files.move(tmpFile, finalFile, StandardCopyOption.ATOMIC_MOVE); 使用番石榴(14)和java.io.File : com.google.common.io.Files.write(content, tmpFile, charset); tmpFile.renameTo(finalFile); 或者更晦涩的方法: try (OutputStream os = new FileOutputStream(tmpFile); Writer writer = new OutputStreamWriter(os, charset)) { writer.write(content); } Runtime.getRuntime().exec( new String[] { "cmd.exe", "/C", "move " + tmpFile + " […]

I / O完成端口* LAST *称为callback,或者:清除事物的安全位置

我想这个论点很重要,应该在这里有一些空间。 让我们考虑C / C ++中最常见的I / O完成端口devise,它具有一个抽象HANDLE的结构(或类),以及它的一些属性,如下所示: class Stream { enum { Open = 1, Closed = 0 }; // Dtor virtual ~Stream() { if (m_read_packet != 0) delete_packet(m_read_packet); // the same for write packet } // Functions: bool read(…) { if (m_read_packet != 0) m_read_packet = allocate_packet(); ReadFile(m_handle …); } bool write(…); bool close() […]

InterlockedIncrement vs InterlockedIncrementAcquire vs InterlockedIncrementNoFence

有人能解释这三个primefaces操作之间的区别吗? InterlockedIncrement InterlockedIncrementAcquire InterlockedIncrementNoFence 我似乎无法find任何文件,除了“使用获取symantecs”,而我不明白的意思。 谢谢。