📄 serfile.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 + -