8得票10回答
在Linux系统上获取用户默认电子邮件

有没有办法以编程方式获取当前用户的电子邮件地址?我知道电子邮件通常是user@hostname,但有没有办法获取电子邮件地址?我知道如何获取用户名和主机名,因此我可以自己构建它,但我想确保即使电子邮件不是user@hostname时也能获取电子邮件地址。 欢迎使用C语言。 谢谢

37得票2回答
C扩展:<? 和 >? 运算符

我注意到在某个时刻GCC中有&lt;?和&gt;?操作符。我该如何在GCC 4.5下使用它们?它们是否已被删除,如果是,那么是在什么时候被删除的?Offset block_count = (cpfs-&gt;geo.block_size - block_offset) &lt;? count;...

14得票2回答
在GCC中链接libssl和libcrypto

我正在尝试使用OpenSSL的EVP接口进行加密。 我相信我的代码是正确的,但似乎无法编译。 我正在使用GCC和Ubuntu 32位Precise,已安装并且是最新版本的libssl-dev。 该项目目前只包含一个文件program.c。#include &lt;openssl/evp.h&...

9得票12回答
我该如何改进/替换sprintf函数,它在性能上被测量为瓶颈?

通过性能分析,我发现这里的sprintf占用了很长时间。是否有更好的替代方案,仍然可以处理y/m/d h/m/s字段中的前导零? SYSTEMTIME sysTime; GetLocalTime( &amp;sysTime ); char buf[80]; for (int i = 0; i...

3得票1回答
从C++向C99 complex函数传递参数

如果第三方C库期望一个C99复数数组作为参数,那么在C++中调用它的最简单方法是什么?我的复数使用STL complex类型。我可以只需将其包装在一个新的c函数中,该函数接受浮点数并将其转换为复数,但是否有更直接的方法?

3得票2回答
有没有任何平台上,Fortran的“double precision”与C的“double”不同?

为了与C程序进行互操作,Fortran标准的2003修订版引入了一个名为iso_c_binding的模块,可以使得编写类似以下代码成为可能: USE iso_c_binding, ONLY: c_int, c_float INTEGER(KIND=c_int) :: x REAL(KIND=...

7得票2回答
如何在FreeBSD中获取PID的进程名称?

我正在尝试编写一个函数,该函数返回父进程的名称,如果是bash,则应返回bash。 const std::string &amp;getParentProcessName() { static std::string name; auto ppid = getppid(); #ifd...

6得票6回答
在C语言中使用const char *返回字符串

我试图理解以下字符串传递如何适用于我的错误字符串。这个示例是我从一个更大的源代码中制作的。 我的问题是,为什么我不需要为包含我的错误消息的字符数组专门分配内存?我认为我需要为字符串分配一些内存,并使用err指针指示该内存的开始。 这与它是一个“const char *”有关还是因为我在st...

6得票1回答
将指针在size_t或uintptr_t之间转换是否会违反严格别名规则?

我提出了一个关于库的更改,其公共API当前看起来是这样的: typedef size_t enh; /* handle */ int en_open(enh *handle) { struct internal *e = malloc(...); *handle = (e...

6得票1回答
两个无符号整数之间的差的数据类型是什么?

以前我总是认为这是理所当然的,但假设我有: uint8_t a; uint8_t b; if ((a - b) &lt; 0) { ... } 表达式 (a - b) 的数据类型是什么?Godbolt先生 告诉我它是有符号值;这是否由任何C规范保证? 修正: 我现在明白了,类型...