我对linux中的pthreads有一些疑问:
pthread_t它是一个类似的数据类型,int并char表明我们正在定义一个线程?pthread_t thread1在该语句之后立即分配内存还是等到pthread_create()调用之后?pthread_create()通话中传递多个参数吗?如果是这样,怎么样?我有很多这样的想法.也请随时建议任何好的网站或文件阅读.
我写了一个像这样的makefile:
HEADER = -I./cygdrive/c/cpros/kajj/source4
LIBB = -L./cygdrive/c/cpros/kajj/source1 -L./cygdrive/c/cpros/kajj/source2
LIBRA = -larith -ldekk
target : game.o
gcc $(HEADER) $(LIBB) $< -o $@ $(LIBRA)
game.o : game.c
gcc -c game.c
Run Code Online (Sandbox Code Playgroud)
我创建了自己的静态库,包括头文件路径和库路径.当我执行我的makefile时,它会给出一个错误,指出
/usr/lib/gcc无法找到-larith -ldekk.
它指向的lib /目录,但它不是在那里:-ldekk和-larith分别是源1以及源文件.
如何解决这个错误?
可能重复:
头文件和库之间有什么区别?
谁能告诉我头文件和库文件的实际含义是什么?它们的区别是什么?
例如,我们在程序中包含带扩展名为.h的头文件,它只是定义但实际的实现是在库文件中定义的,这是在链接阶段完成的,这是人们所说的,但有时我们也包括库文件目录用于生成exec文件的程序,例如在posix线程中,人们说要在命令行中包含-lpthread,但为什么当我们包含头文件#include <>为什么我们仍然需要包含库文件时我可能知道原因请??
我只是在c语言上试验一下你能回答我关于我写的程序的问题
void main()
{
char *p,; // created a pointer pointing to string
p = (char *) malloc(50); // dynamically create 50 bytes.
strcpy(p, "this code is written about the dynamic allocation");
p += 20;
free(p);
}
Run Code Online (Sandbox Code Playgroud)
现在有人能告诉我free(p)语句的效果是什么,将释放最后30个字节并用于将来的内存分配.什么是输出?