eclipse-CDT有时可以输入,但怎么这个程序不能输出呢?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/soundcard.h>
#include <math.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define BASE_VALUE 257
int main(int argc, char *argv[])
{
int mixer_fd = 0;
char *names[SOUND_MIXER_NRDEVICES]=SOUND_DEVICE_LABELS;
int value,i;
printf("\nusage:%s dev_no.[0..24] value[0..100]\n\n",argv[0]);
printf("eg. %s 0 100\n",argv[0]);
printf(" will change the volume to MAX volume.\n\n");
printf("The dev_no. are as below:\n");
for (i=0;i<SOUND_MIXER_NRDEVICES;i++)
{
if (i%3==0) printf("\n");
printf("%s:%d\t\t",names[i],i);
}
if (argc<3)
exit(1);
if ((mixer_fd = open("/dev/mixer",O_RDWR)))
{
printf("Mixer opened successfully,working...\n");
value=BASE_VALUE*atoi(argv[2]);
if (ioctl(mixer_fd,MIXER_WRITE(atoi(argv[1])),&value)==0)
printf("successfully.....");
else printf("unsuccessfully.....");
printf("done.\n");
}
else
printf("can't open /dev/mixer error....\n");
return 0;
}
自己使用gcc编译也可以输出,但是用eclipse就不行。
①比如int main(){printf("hello\n");return 0}是可以在eclipse中输出的。试过很多都可以输出,安装没有问题。
②自己的平台是Fedora9,有几次运行ioctl()函数的例子都不行,跟这个有关吗??
③gcc是可正确的输出。
问题出在啥地方啊,请教大家!
[解决办法]
ubuntu 11.04, Eclipse CDT Helios output:
eg. /d4/workspace/cdt/printf1/Debug/printf1 0 100
will change the volume to MAX volume.
The dev_no. are as below:
Vol :0Bass :1Trebl:2
Synth:3Pcm :4Spkr :5
Line :6Mic :7CD :8
Mix :9Pcm2 :10Rec :11
IGain:12OGain:13Line1:14
Line2:15Line3:16Digital1:17
Digital2:18Digital3:19PhoneIn:20
PhoneOut:21Video:22Radio:23
Monitor:24
[解决办法]
你可以用最新版Eclipse CDT试试