⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serfile.c

📁 LINUX 下串口通信编程
💻 C
字号:
/* * Program:     serfile * Funtcion:    transmit a file via a serial port * Version:     0.0.3 * Usage:       serfile filename * Date:        2002-02-19 * Author:      Paul Dean*/#include <stdio.h>              /* printf */#include <fcntl.h>              /* open */#include <string.h>             /* bzero */#include <stdlib.h>             /* exit */#include <sys/times.h>          /* times */#include <unistd.h>             /* read, write, close */#include <sys/stat.h>           /* lstat */#include "vardef.h"#include "serial.h"#include "args.h"INT32           SendAllFiles (INT32 num, char **pathname);int main (int argc, char *argv[]){    parse_arguments (argc, argv);    /* open comport */    if (OpenComPort        (args.port, args.baudrate, args.databit, args.stopbit,         args.parity)) {        fprintf (stderr,                 "Make sure /dev/ttyS%d not in use or you have enough privilege.\n\n",                 args.port);        exit (-1);    }    SendAllFiles (argc - optind, &argv[optind]);    CloseComPort ();    exit (0);}INT32 SendAllFiles (INT32 num, char **pathname){    long            oldtick, newtick;    INT32           systick;    float           kbps = 0, time = 0;    long            byteSend = 0;    struct stat     stat;    oldtick = times (NULL);     /* get system tick number */    /* send files in char **pathname via serial port */    while (*pathname != NULL) {        printf ("\nsenging file %s, echo mode: %s\n",                *pathname, args.echo == 0 ? "off" : "on");        if (-1 == SendFile (*pathname, args.echo)) {            fflush (stdout);            fflush (stderr);            fprintf (stderr, "\ncannot send file %s\n", *pathname);            return (-1);        }        lstat (*pathname, &stat);        byteSend += stat.st_size;        pathname++;    }    newtick = times (NULL);    systick = sysconf (_SC_CLK_TCK);    /* get system clock tick per second */    time = (float) (newtick - oldtick) / systick;    kbps = (float) byteSend / time / 1000;    printf ("\n%d files, %ld bytes sent in %.2fs, %.2fKbps\n",            num, byteSend, time, kbps);    return (0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -