unix下c编程
A. 怎样利用CC命令在Unix上编译C程序
在 UNIX系统下面,使用 cc 命令最常用的选项主要有如下几个(以 my_prog.c 为例进行说明)
$cc -c my_prog.c <cr> (-c 选项表示只编译、产生中间文件,不进行链接、并产生最终的可执行程序)
$cc my_prog.c <cr>(编译、链接,并产生缺省的可执行程序。缺省的可执行文件名为:a.out)
$cc -o my_runfile my_prog.c <cr>(-o 选项用于生成用户指定的可执行程序名,代替缺省的可执行文件名:a.out。这里的可执行文件名是:my_runfile)
至于说还有很多其他选项,例如:-L系统库名字(*.LIB)等,那就需要在平时的编程过程中去体会了。
另外,如果是在 linux 系统下面进行 C 语言的开发,使用的是 gcc 编译器。其选项和 cc 编译器相同。
B. 求教一个UNIX环境下c语言编程的问题:
从你的问题来看,while(1){}主要问题出在while的这个上面。
1、当while这个循环中有printf或sleep 的时候gcc在编译的时候就不会对其做优化处理,当这时候你运行程序时,程序会阻塞这while这里
2、当你把WHILE中的printf or sleep去掉时,这时while 中是个空循环,当gcc在编译的时候就会对其做优化处理,这里怎么处理的我一时也不太明白。这时你运行程序的时候就不会阻塞在这个while中。
所以,你这问题可以说是阻塞问题,也可以说是gcc 优化问题。
如果想要做到aaa和bbb交替打印,看样子你要改变程序的结构。
C. 一道unix 下C语言编程疑惑,希望高手帮解释下
1、我直接粘了你的代码(我的系统是Ubuntu10.04),然后
$gcc -o xxx xxx.c //编译通过
$./xxx //也可以执行
出错的话,说明你应该不是用的Linux系统吧,网上给出的原因:
编译时需要加-lsocket选项
http://faq.csdn.net/read/166652.html
http://jimobit.blog.163.com/blog/static/28325778200981471439881/
不过我很疑惑的是别人都是在写socket程序时才需要这个选项,你的代码和socket没关啊。。。
2、关于fork()函数的调用与返回,可以看看文库里的这篇文章:
http://wenku..com/view/61067c68011ca300a6c39031.html
D. 如何在Unix 下运行c语言
首先要看是什么设备
aix和hp的unix编译还是不一样的
然后安装编译器,和链接器,默认的是gcc,我用的xlc
最后使用编译命令
例如
xlc
-o
文件名.c
生成目标文件
编译
xlc
文件名
目标文件名.o
链接
生成文件
在目录下执行./文件名
&
程序在后台执行
最好看写编程基础书吧
或者mak的语法
会有很大帮助
E. 如何开始unix下c编程的学习
ubuntu是Linux 的一种,Linux 不是 Unix ,是它的类似的操作系统。网络有他们的介绍。
Unix 、Linux 环境下,最佳的GNU 编译器确实是 gcc,他包含了 C、C++、Objective-C、 Fortran、 Java、 Ada、 Go 语言的编译功能,相当强大。
emace确实是文本编辑器,确实可以用来编写源代码,然后用gcc编译连接成为可执行程序。
如果只是学习编程的话,用虚拟机确实可以实现要求。至于是否愿意安装一个全新的操作系统,则随自己的意愿。不过如果你确实打算在Linux系统下好好学习编程的话,建议还是安装一套的好。
F. Linux下的C语言和Unix下的C语言编程有区别吗
1、unix和linux是操作系统,本身和C语言没有什么关系。
但linux和Unix本身是用c语言实现的,现在又以linux为主,
所以能够研究Linux内核,算是比较高水平的。
2、C语言是可移植的,也就是用c的库函数编程。
带着环境的像linux下的c,unix下的c是调用系统提供的系统调用,linux和unix差别很小,但是不同产品之间会有不同的。现在有一个标准就是为了结决unix的可移植性,POSIX。
G. 在unix上用什么编译c语言写的程序
这个很简单,看来老兄是linux高手,基本上不会使用win系统,如果你有源代码的情况下,在windows系统下,双击vc++软件后,新建工程,然后选择Win32 Console Application,然后再右边应该有保存的硬盘路径和输入工程名,然后根据提示下一步,直道完成,然后再点击左边的file view 然后在在你要加入的文件夹内新建文件然后保存成.c的后缀名,就可以把你的源代码写进去了,然后找到一个叹号,点击它,就编译运行了,运行时弹出一个dos窗口,就可以看到了。c++完全兼容c语言,vc的编译环境,可以有api,也就是说编写窗口程序。比起linux来,就是可以直接在点一个按钮就行了,省的写那些命令了。其他的应该不会有太大区别。 点红色的叹号是运行,vc把编译,连接,执行,都分开了,如果点了红色的叹号也运行不了,那就说明你vc软件本身有问题。建议你重新下载一个再试试。
H. unix下C编程,编译的时候总是提示undefined reference to'fread'
fread 是标准输入输出库中的函数,不同版本的编译器在默认库上有所区别。有的不用写即包含所有常用库,有的编译器是零包含的。
unix下c语言编译器要想使用库函数,必须对库进行相关声明
#include <stdio.h>
fread介绍附上
函数原型
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
功 能
从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功返回 0。
参 数
buffer
用于接收数据的内存地址,大小至少是size*count字节.
size
单个元素的大小,单位是字节
count
元素的个数,每个元素是size字节.
stream
输入流
返回值
实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.
从ferror和feof获取错误信息或检测是否到达文件结尾.
I. UNIX下用C语言进行Socket编程和C#Server之间通信如何实现
直接使用UNIX的Socket编程就行。Client的话先使用int
socket(int
domain,int
type,int
protocol)创建一个fd,然后使用int
connect(int
sockfd,struct
sockaddr*addr,sock_tlen)建立连接。然后调用send发送指定数据即可。如果发送数据类型不是一个字节的话(如int,long),需要注意一下大小端转化。
J. 在Unix环境下,怎么运行c 程序
你是什么unix版本?
如果你机器上装有C编译器,比如gcc,把你的程序写到.c文件中,比如main.c,然后
gcc -o test main.c
然后
./test 就可以执行编译好的程序了