c - 如何使系统函数调用起作用?
问题描述
我想按一个按钮使用 8051 关闭计算机。除了调用系统函数来启动关机之外,包括电路在内的一切都工作正常。这是因为 Keil C51 自带的 stdlib.h 中没有包含这个功能。
我尝试用 MinGW 的那个替换 stdlib.h 以及这个(他们有系统功能):https://code.woboq.org/qt5/include/stdlib.h.html 两次编译都失败了,因为这些文件生成错误(太多无法修复)。然后我声明了我自己的函数(见下文),它使编译成功但不起作用,即不会关闭。
#include <stdio.h>
#include <stdlib.h>
#include <reg51.h>
void Delay(void){
int j;
int i;
for(i=0;i<10;i++){
for(j=0;j<10000;j++){}
}
}
extern int system (const char *__command);
void main(){
P1=0xFF;
P2=0x00;
while(1){
P2=~P1;
system("C:\\WINDOWS\\System32\\shutdown /s");
Delay();
}
}
按下按钮时,计算机应关闭。但是,要么编译失败,要么用户定义的函数什么都不做。
解决方案
推荐阅读
- javascript - 删除行空格
- simulation - 一个代理的并行活动
- javascript - 我可以检查事件是否在一小时内发生,无论日期如何?Moment.js
- c# - 看不懂任务工厂
- go - 将文档插入 mongodb,其中一个字段具有动态结构
- java - Efficient searching algorithm for finding closest point to a line segment
- dynamic - ffmpeg - How to change the filter-paramaters depending on time oder framenumber?
- html - 在一行中引导 5 列
- ios - 安装 Google-Mobile-Ads-SDK 时出现问题
- java - Why am I receiving a NullPointerException in HttpURLConnection