Argc和Optind是完全随机的

时间:2018-04-15 07:56:15

标签: c debugging

因此,正如标题在我的C程序中所说的那样,我得到的命令行输入与通常的argc和argv一样。然而,经过进一步的检查,我意识到我的传入argc是一个完全随机的数字。

这是我的程序的开始,我想知道argc的值。

void debug(char *format, ...) {
    if(DEBUG_MODE!=0) return;
    va_list arg;

    va_start (arg, format);
    (void) fprintf (stdout, format, arg);
    va_end (arg);
}

int main(int argc, char *argv[]) {
    debug("ARGC %i\n", argc);

其中debug()只是一种更好的打印方法。所以,当我用:

开始我的程序时
./server

我得到的结果是:

 ARGC -1786798448

所以我真的不明白这一点。

1 个答案:

答案 0 :(得分:1)

.WithMany(e => e.SupportOfTeams) 类型的变量不是您可以传递给#include <QCoreApplication> #include <iostream> #include <QSerialPort> #include <QDebug> #include <Windows.h> #include <QElapsedTimer> using namespace std; QSerialPort serial; QElapsedTimer timer; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); serial.setPortName("ttyUSB0"); serial.open(QIODevice::ReadWrite); serial.setBaudRate(QSerialPort::Baud9600); serial.setDataBits(QSerialPort::Data8); serial.setParity(QSerialPort::NoParity); serial.setStopBits(QSerialPort::OneStop); serial.setFlowControl(QSerialPort::NoFlowControl); while(!serial.isOpen()) serial.open(QIODevice::ReadWrite); if (serial.isOpen() && serial.isWritable()) { qDebug() << "Serial is open"; QByteArray output; QByteArray input; while(true) { output = "a"; serial.write(output); serial.flush(); timer.start(); // Sleep(80); qDebug() << timer.elapsed(); serial.waitForBytesWritten(100); serial.waitForReadyRead(100); if(serial.bytesAvailable()>=18) input = serial.read(18); qDebug()<<input; } } return a.exec(); } 的内容。

尝试:va_list

请参阅vprintf