- 论坛徽章:
- 0
|
-bash-3.00$ cc -o io io.c\r\n\"io.c\", line 1: warning: invalid white space character in directive\r\n\"io.c\", line 2: warning: invalid white space character in directive\r\n\"io.c\", line 3: warning: invalid white space character in directive\r\n\"io.c\", line 4: warning: invalid white space character in directive\r\n\"io.c\", line 5: warning: invalid white space character in directive\r\n\"io.c\", line 6: warning: invalid white space character in directive\r\nUndefined first referenced\r\n symbol in file\r\nkstat_chain_update io.o\r\nkstat_read io.o\r\nkstat_open io.o\r\nld: fatal: Symbol referencing errors. No output written to io\r\n\r\n代码:\r\n#include <kstat.h> \r\n#include <stdio.h>\r\n#include <inttypes.h>\r\n#include <unistd.h>\r\n#include <string.h>\r\n#define SLEEPTIME 5 \r\n\r\nunsigned int sleep(unsigned int);\r\nvoid my_io_display(char *, char *, kstat_io_t); \r\n\r\nint main(int argc, char *argv[]) \r\n{ \r\n kstat_ctl_t *kc; \r\n kstat_t *ksp; \r\n kstat_io_t kio; \r\n \r\n kc = kstat_open(); \r\n \r\n \r\n while(1) { \r\n if(kstat_chain_update(kc)) \r\n fprintf(stderr, \"<<State Changed>>n\"); \r\n for (ksp = kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) { \r\n if (ksp->ks_type == KSTAT_TYPE_IO && strcmp(ksp->ks_class,\"disk\") == 0) { \r\n kstat_read(kc, ksp, &kio); \r\n my_io_display(ksp->ks_name, ksp->ks_class, kio); \r\n } \r\n } \r\n sleep(SLEEPTIME); \r\n } /* while(1) */ \r\n\r\n} \r\n\r\nvoid my_io_display(char *devname, char *class, kstat_io_t k) \r\n{ \r\nprintf(\"Name: %s Class: %sn\",devname,class); \r\nprintf(\"tnumber of bytes read %lldn\", k.nread); \r\nprintf(\"tnumber of bytes written %lldn\", k.nwritten); \r\nprintf(\"tnumber of read operations %dn\", k.reads); \r\nprintf(\"tnumber of write operations %dn\", k.writes); \r\n} |
|