我正在使用我的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的游戏杆
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] 举报,一经查实,本站将立刻删除。