"Capture, convert and output data from IIO device buffer\n"
                "  -a         Auto-activate all available channels\n"
                "  -A         Force-activate ALL channels\n"
-               "  -c <n>     Do n conversions\n"
+               "  -c <n>     Do n conversions, or loop forever if n < 0\n"
                "  -e         Disable wait for event (new data)\n"
                "  -g         Use trigger-less mode\n"
                "  -l <n>     Set buffer length to n samples\n"
 
 int main(int argc, char **argv)
 {
-       unsigned long num_loops = 2;
+       unsigned long long num_loops = 2;
        unsigned long timedelay = 1000000;
        unsigned long buf_len = 128;
 
        ssize_t i;
-       unsigned long j;
+       unsigned long long j;
        unsigned long toread;
        int ret, c;
        int fp = -1;
                        break;  
                case 'c':
                        errno = 0;
-                       num_loops = strtoul(optarg, &dummy, 10);
+                       num_loops = strtoll(optarg, &dummy, 10);
                        if (errno) {
                                ret = -errno;
                                goto error;
                goto error;
        }
 
-       for (j = 0; j < num_loops; j++) {
+       for (j = 0; j < num_loops || num_loops < 0; j++) {
                if (!noevents) {
                        struct pollfd pfd = {
                                .fd = fp,