c相关内容
我正在尝试将一个应用程序与Ubuntu 18.04上的GC链接起来。LD找不到libjasper库。我使用以下命令手动安装了它: sudo apt update sudo apt install libjasper1 libjasper-dev 但收到此错误: /usr/bin/ld: cannot find -llibjasper 我尝试使用此命令添加库,但不起作用:
..
我使用的是Visual Studio 2008速成版。 一个普通的Win32控制台C项目,代码如下: int main(void) { struct _addr_info { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;
..
在阅读Dennis Ritchie的书时,我发现将getchar()函数在C中返回的值存储在整型变量中比存储在字符型变量中更好。声明的原因是字符类型变量不能存储EOF的值。在实际实现时,将返回存储在char类型变量中并不困难。而getchar()函数最初返回的是字符还是字符的ascii值? 推荐答案 EOF的值始终定义为-1。 这很好用,因为所有ASCII代码都是正的,所以它不可
..
我已经通过官方资源库安装了Ubuntu 14.04中的Code::Block 13.12。当我编译时,一切都很顺利。但当我调试时,在外壳程序中显示以下消息: 警告:gdb:设置控制终端失败:操作备注 允许 程序一直执行到断点,但当我执行下一行时,不会再显示任何内容。 如何修复此问题? PD:我已经安装了最新版本的GDB(存储库中的版本)。我也试过使用Linux终端,而不是C
..
我在我的c program中使用计数器制作栅格图像以查看图像统计:每个流域的相对大小(pixel counting) 我的程序很长,所以我制作了Minimal, Reproducible Example。 第一个不带OpenMP的程序,它显示了我要实现的目标(所有像素数): #include #include int main() {
..
我想把我用C/C++(LINUX环境GCC/g++编译器)写的项目作为共享库/静态库分享,而不是真正分享源代码。这样其他用户就可以在不知道我的源代码的情况下使用我的项目。谁能告诉我如何以.so/.a格式共享它? 假设我的项目如下: main.cpp, Source1.cpp, Source2.cpp, Source3.cpp, head1.h, 生成文件 如何通过隐藏文件Sour
..
我知道如何使用和创建它们,但我找不到关于它是如何实现的、函数调用是如何发生的等等的文本,有人可以帮助我了解这些信息吗?因为我想了解它们,而不仅仅是知道它是什么以及它是如何工作的 推荐答案 您可能知道,当您编译一个源文件时,您会得到一个目标文件。根据您的平台,它的扩展名可能是.o、.obj或其他任何文件。静态库基本上是目标文件的集合,有点像.Zip文件,但可能没有压缩。当尝试生成可执行文
..
我正在尝试将无符号的long long int转换为字符串,而不使用任何库函数,如sprintf()或ltoi()。 问题是,当我返回值时,如果我在将值返回给调用函数之前没有在我的函数中printf(),它就不会正确返回。 #include #include char *myBuff; char * loToString(unsigned lon
..
我想做一些简单的事情,比如使用C和SDL在屏幕上画一个正方形。我复制的示例不起作用。 //Get window surface SDL_Surface *screenSurface = SDL_GetWindowSurface(window); //Fill the surface white SDL_FillRect(screenSurface, NULL, SDL_MapRGB(scr
..
由于此错误,我无法创建内核驱动程序。 设备驱动程序未安装在任何设备上,请使用原始驱动程序(如果提供)。 看起来我的inf文件包含了一些错误,尽管我没有更改任何内容。 请帮帮我)) INF文件 ; ; hellodriver.inf ; [Version] Signature="$WINDOWS NT$" Class=System ClassGuid={4d36e97d-e3
..
我希望从C代码触摸我的文件以修改其访问日期。这似乎不起作用: struct stat fileSt; lstat(path, &fileSt); fileSt.st_mtime = time(NULL); 感谢您的帮助。 推荐答案 我认为您需要utime(2)。这应该足够了: utime(filename, NULL); 文件上说: int utime(con
..
使用管道时是否需要将stdin替换为pipe结尾? 我有一个应用程序:- 创建管道, 派生一个子进程,然后 execl()新子进程中的新进程映像, 但我遇到了两个概念性问题。 是否需要用dup()或dup2()替换stdin?显然,只使用管道中的fd会更容易。(我不需要对此有什么了解) 如果您只能使用管道中的fd,当execl采用char *参数时,如何使用exe
..
下面是一个简单的C文件,其中包含一个枚举定义和一个main函数: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } 它转换为以下LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32,
..
我正在尝试编写一个程序,该程序执行以下命令,使用管道并接受两个参数DIR(目录)和arg(文件类型,示例:jpg),将一个命令的输出连接到下一个命令的输入。 ls目录-Lar|grep参数|排序 代码如下: int main(int argc, char *argv[]) { if (argc != 3) { printf("Invalid argume
..
我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装
..
我刚刚了解了fork,根据我的理解,子进程从对fork的调用开始执行(否则fork将是递归的?)。 然而,在此代码中(ideone link): int main() { printf("%d: Common code1 ", getpid()); if (fork() != 0) { printf("%d: Parent code ", getpid()); }
..
我正尝试用C语言编写我自己版本的MPI_ALLREDUTE,但仅适用于2次方的大小,即SIZE=2,4,8,16,...并且仅适用于MPI_INT数据类型。到目前为止,我的代码是: 72 int tree_allreduce(const int *sendbuf, int *recvbuf, int count, MPI_Op op, MPI_Comm comm){ 73 74
..
我是C的新手,我有一个小问题。我需要编写一个程序,用户在其中输入文本,程序会显示文本的长度。 我尝试了strlen(),但这不是我想要的。 char a[20]; scanf("%s",a) 如果我键入";Hello world";,结果是5,但我需要11。 我需要使用scanf,但可能无法使用它... 推荐答案 此调用 scanf("%s"
..
第一部分: i=j=k=1; m = ++i && ++j || ++k; printf("%d, %d, %d, %d ", i, j, k, m); 输出:2、2、1、1 第一部分很容易理解,这里++i && ++j先执行,这是真的(i和j的值递增),所以不需要检查OR运算的下一部分(不需要递增k的值)。 第二部分: i=j=k=1; m = ++i || ++j &&
..
我想知道是否可以使用位操作来根据位掩码合并两个位域? 例如,我有两个值和一个位掩码: char mask = 0x29; // 0010 1001 char a = 0x9; // 0000 1001 original value char b = 0xE8; // 1110 1000 modified value 我想根据位掩码将b中的位设置为a的值。只有3位会受到影响。
..