微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Linux的线程函数在Windows中工作?

我正在使用我的Windows机器上的cygwin软件包中的gcc编译这个程序

#include<stdio.h> #include<pthread.h> void* thread_function(void) { printf("hello"); } int main(int argc,char *argv[]) { pthread_t thread_id[argc-1]; int i; int status; printf("argc is %d ",argc-1); for(i=0;i<argc-1;i++) { pthread_create (&thread_id[i],NULL,&thread_function,NULL); } for(i=0;i<argc-1;i++) pthread_join(thread_id[i],NULL); }

它编译并创build一个.exe

当我运行在CMD中

./a.exe 2 3

输出

Lib(s)input:创build具有多个button的游戏杆

Linux中每个线程的cpu统计信息

统计dynamic生成页面数量

Xlib:closures窗口总是会导致致命的IO错误

在Linux下的C程序:如何找出另一个程序是否正在运行

argc is 2 hellohello Question :

pthread.h和这个线程函数与linux操作系统有关,那么为什么它可以用于Windows?

如何在Windows中为C ++应用程序禁用触摸“钻石”符号?

如何从正在使用的文件中读取数据

挂第三个X鼠标button?

截图X11

为什么输出刚刚闪烁,当我不使用getch()?

除了pthread.h之外,cygwin是一个完全类似unix的环境,主要基于gnu工具,也有一些solaris的东西。

您可以在cygwin环境中编译和使用unix软件,但不能像这样分发exe文件。 每台Windows机器都需要安装并配置一个cigwin环境。

由于操作系统设计的差异,Cygwin应用程序在Windows环境下不是100%有效或可靠的。 就像Windows应用程序在使用葡萄酒时不是100%可靠或高效的,尽管Cygwin应用程序是在Windows中本地编译的。

其他的环境/库/编译器也提供了使用posix函数方法。 其中最成功的是Mingw,它提供了在win32调用之上实现的库,并且不需要额外的环境。

除此之外,Cygwin应用程序必须符合GPL2条款,因此在使用cygwin编译的二进制文件时,您必须将应用程序的源代码与应用程序分离开来,Mingw运行时库正式处于公有领域,因此您可以将自己的源代码保留给自己你的愿望。

http://www.mingw.org/

http://en.wikipedia.org/wiki/MinGW

http://en.wikipedia.org/wiki/Cygwin

它们不是“Linux线程”,它们是P OSIX 线程 。 Cygwin提供了一个POSIX兼容层,包括pthread.h 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐